Jquery очень медленно в IE7 - PullRequest
0 голосов
/ 09 июля 2009

Резюме

jquery используется для получения результатов поиска с помощью вызова get (). При рендеринге большей части результатов проблем нет, но затем при рендеринге части результатов IE7 постоянно зависает на 5-30 секунд перед рендерингом.

Задача

Вызов get() в jquery успешно выполняется. В данных нет eval(), или urlencode, или декодирования, так как данные в формате html. Большая область содержимого заменяется данными через

$('#content').html(data);

Внутри #content есть пара скрытых элементов, содержащих контент, который нужно перенести в другое место за пределами #content. (это результаты поиска, полученные с помощью ajax, и крошка должна быть обновлена ​​в другом разделе)

$('#breadcrumb').html($('#content #breadcrumbcontainer').html());

Вышеописанное работает очень хорошо в Firefox и других браузерах.

Тестирование на компьютере Vista с IE 7.0.6001.18000 без отладчика сценариев было быстрым и нормальным во всех случаях.

Тестирование на XP с 7.0.5730.11 с отладчиком сценариев MS в ряде случаев было медленным. На данный момент я могу только догадываться - похоже, это как-то связано с

  1. устанавливается отладчик сценариев
  2. неверный строгий XHTML
  3. вызвано неясным временем - исправление, которое я видел, предложило использовать setTimeout()
  4. возможно, нужна очередь jquery?
  5. некоторая комбинация вышеперечисленного

Может быть предоставлено больше кода, но это действительно сбивает с толку, что производительность настолько плохая (30 секунд рендеринга), когда она равна 1 секунде в IE7 без отладчика сценариев.

Любые предложения относительно причины, очевидно, будут оценены.

- обновление -

Теперь tskmanager показывает загрузку процессора для iexplorer.exe в режиме ожидания. Просто зависает, как будто есть тайм-аут.

- обновить два -

Было подтверждено, что IE7 без отладчика скриптов Microsoft, что IE7 работает медленно

Диапазон: от 4 секунд до 2:19 Среднее: 33 секунды Медиана: 18 секунд Стандартное отклонение: 37 секунд

1 Ответ

1 голос
/ 09 июля 2009

Проблема возникла из-за того факта, который я пропустил, а именно, что результаты поиска содержат флэш-объект. удаление объекта вспышки делает скорость сопоставимой с FF.

Вспышка теперь загружается после $(document).ready() с использованием swfobject, и проблема исчезла.

Поведение было несовместимым, потому что IE7 будет кэшировать флэш-объект - поэтому иногда производительность будет нормальной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...