2010-08-15 3 views
4

Название, я уверен, спровоцирует реакцию «здесь мы идем снова ...» со многими читателями. Извиняюсь. У меня проблема с Google, и я получил телефонную книгу. Надо сказать, что в отношении SSL. Другие указывают на ужасный двигатель JS в IE. Ни один из интернет-тиранов, которые я нашел, действительно ответил на это удовлетворительно для меня. Поэтому я думал, что разместил бы здесь ...Ужасно медленный AJAX с IE6

Я создаю веб-приложение, в основном разработанное в Firefox (из-за Firebug), протестированное в Opera, Chrome, Safari и ... IE. Много jQuery, много AJAX. Веб-сервер - это Apache на Win XP. Ответ браузера обычно невероятно быстрый (веб-сервер в локальной сети и ничего не делает), за исключением IE, который является ЭКСТРУКТИВНО медленным.

Мой код, как правило, структурированы по этим линиям:

module1= function() { 
    // JS code backing html in div1 
}; 

$div1.load("div1.html",function() { 
    module1(); 
}); 

То есть, код JS для Module1 известно браузер от слова «идти», хотя я бы ожидать, что компиляция этого кода отложенных во всех браузерах, пока я не назову закрытие модуля1(), которое следует только при успешной загрузке(). Поэтому я могу с уверенностью полагать, что медленный движок JS, который может присутствовать в IE, будет показывать перетаскивание (для отображения div1). Тем не менее ...

Что я заметил, так это то, что хотя IE6 идет о поздней загрузке моих фрагментов HTML и всех сопутствующих компонентов (изображений, в основном), когда я вытягиваю другой браузер (чтобы передать время) и загружать свой сайт, этот браузер будет висеть до тех пор, пока IE не завершит загрузку. То есть IE полностью сжимает мой сервер Apache для всех остальных.

Это заставляет меня думать, что это, прежде всего, проблема медленной JS-интерпретации. На самом деле, между Apache и IE могут возникать проблемы с дрожанием рук. У меня нет доказательств этого в журналах Apache, поэтому я думал, что попрошу.

У кого-нибудь есть идеи? Есть ли (известная) проблема конфигурации на Apache?

PS: Могу добавить, что во время этих длительных усилий по поздней загрузке индикатор состояния IE, который, я считаю, является ненадежным индикатором прогресса, нередко показывает URL-адреса для моих значков (т.е. очень маленькие .gif и .png файлы).

+0

Работает ли веб-сервер локально, где вы загружаете веб-страницу? –

+0

В локальной сети да, а не на клиенте, который запускает браузер (ы). – Ollie2893

+1

какая доля вашего пользователя фактически использует IE6? Я имею в виду: действительно ли это стоит исправлять (зная, что, скорее всего, это проблема IE6, и вы не сможете многое сделать?). – nico

ответ

0

Работая недавно с IE6, я могу указать одну вещь, которая нам помогла. Мы рассмотрели довольно весь код JQuery, чтобы добавить много (очень много) из:

SetTimeout(function() { <HERE TO REGULAR CODE WE HAD>,0}); 

Эта сила перекрашивать событий на IE6 (какое-то новое исполнение окр с перекрашивать, если я понимаю, хорошо IE6 JS) и, По крайней мере, пользователь может видеть части уже загруженной страницы. Очень полезно при обратных вызовах нагрузки. Таким образом, по крайней мере, восприятие пользователя лучше, появляются блоки страницы, а восприятие пользователем скорости лучше. Но похоже, что все время в реальном времени было лучше.

О IE6 апача взаимодействий, так как ваш сервер Apache не на вашем компьютере, но в локальной сети, вы должны попробовать:

  • испытания сайт с другого компьютера, а не один, где IE6 работает (работает жесткий)
  • активировать mod_status и проверить URL-адрес /статус, чтобы увидеть, если несколько рабочих являются , используемый IE6 или только один

IE6, то, возможно, возникли проблемы с запросами Keepliave, или с Limi о количестве параллельных запросов, которые он может запускать на одном сервере.Но для этого нам понадобится дополнительная информация о HTTP-трафике при возникновении проблемы (и статус сервера, по крайней мере, хороший, проверьте также расширенный статус).