|
|
|
Медленная работа InnerHTML в IE.
|
|||
|---|---|---|---|
|
#18+
Следующий код тормозит в IE, но работает с требуемой скоростью в FireFox, Opera, Safari. Код: plaintext 1. 2. 3. 4. 5. 6. Если закомментировать "ReText = SpanA[0].innerHTML;", то работает нормально и в IE. Как можно ускорить приведённый фрагмент кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 14:21 |
|
||
|
Медленная работа InnerHTML в IE.
|
|||
|---|---|---|---|
|
#18+
InnerHTML, приведенный фрагмент кода так: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 15:09 |
|
||
|
Медленная работа InnerHTML в IE.
|
|||
|---|---|---|---|
|
#18+
an0nym приведенный фрагмент кода так: Код: plaintext 1. 2. 3. 4. Плохо сформулировал вопрос. Цикл нужен. Для каждого узла получаемые innerHTML обрабатываются и в зависимости от результатов обработки предпринимаются требуемые действия. Я их опустил в приведённом фрагменте кода, так как они не влияют на производительность. Пустой проход по циклу уже очень медленный для IE. Подправленный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Требуется найти альтернативу к innerHTML, которая при фиксированном числе вызовов давала бы большую скорость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 15:43 |
|
||
|
Медленная работа InnerHTML в IE.
|
|||
|---|---|---|---|
|
#18+
InnerHTMLЕсли закомментировать "ReText = SpanA[0].innerHTML;", то работает нормально и в IE. Как можно ускорить приведённый фрагмент кода? Как вы производили замеры? Если закомментировать эту строчку, то последующий "код, обрабатывающий конкретный innerHTML" или тоже пропустится, или во всяком случае будет работать намного быстрее, так как нечего обрабатывать. Приведите обрабатывающий код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 15:53 |
|
||
|
Медленная работа InnerHTML в IE.
|
|||
|---|---|---|---|
|
#18+
an0nym Как вы производили замеры? Если закомментировать эту строчку, то последующий "код, обрабатывающий конкретный innerHTML" или тоже пропустится, или во всяком случае будет работать намного быстрее, так как нечего обрабатывать. Приведите обрабатывающий код. Был код, при выполнении которого не возникало видимых пользователю задержек в FireFox, Opera, Safari, но возникало сильное торможение в IE. Я стал искать причину, вызывающую торможение. Я поставил в конце кода alert и стал последовательно комментировать участки кода. В результате, следующий код выполняется с торможением: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Для следующего фрагмента кода (последняя строка закомментирована) визуально задержек не видно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Поэтому был сделан вывод, что торможение вызвано именно строкой: Код: plaintext 1. Так как торможение наблюдается и при отсутствии "код, обрабатывающий конкретный innerHTML", то он никак не может быть его причиной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 16:15 |
|
||
|
Медленная работа InnerHTML в IE.
|
|||
|---|---|---|---|
|
#18+
Заменил логику работу с использования innerHTML на использование DOM (childNodes, nodeValue). При помощи getTime замерил, что работа ускорилась приблизительно в 20 раз для IE, ускорилась в пределах погрешности для других браузеров. Проблема решена. Причина, как и ожидалось, в медленной работе innerHTML в IE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2010, 12:57 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=36429275&tid=1453623]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 393ms |

| 0 / 0 |
