сценарий на этой странице вызывает т.е. медленно работать

в сервлете вы должны поместить response.setStatus(response.SC_MOVED_PERMANENTLY);, чтобы отправить статус xmlHttp '301', необходимый для перенаправления ...

, а в функции $ .ajax вы не должны использовать .toString() function ..., just

if (xmlHttp.status == 301) { top.location.href = 'xxxx.jsp'; }

проблема в том, что она не очень гибкая, вы не можете решить, куда вы хотите перенаправить ..

перенаправление через сервлеты должно быть лучшим способом. но я все еще не могу найти правильный способ сделать это.

30
задан sirrocco 20 October 2008 в 06:24
поделиться

7 ответов

Вовлеките себя копия Профилировщика Страницы IBM:

https://www.ibm.com/developerworks/community/groups/service/html/communityview? communityUuid=61d74777-1701-4014-bfc0-96067ed50156

Это свободно (всегда победа). Запустите его в фоновом режиме, дайте ему несколько секунд, затем обновите страницу в IE. Вернитесь к профилировщику, и это перечислит все ресурсы, используемые на странице, и даст Вам подробную информацию о профиле - в особенности, где JavaScript занимает много времени для выполнения.

Это должно быть хорошее начало к нахождению источника Вашей проблемы.

, Если бы теги script встроены, я предложил бы создать локальную копию файла и выделить теги script для разделения файлов, если Вы можете.

18
ответ дан 27 November 2019 в 23:14
поделиться

Удалите половину кода и посмотрите, происходит ли это все еще. В противном случае это находится в половине, Вы удалили. Повторитесь, пока Вы не выясняете, какой блок кода вызывает проблему.

9
ответ дан 27 November 2019 в 23:14
поделиться

Это обычно - бесконечный цикл, который вызывает это. Проверьте свои циклы и их условия выхода.

3
ответ дан 27 November 2019 в 23:14
поделиться

Я не полагаю, что существует инструмент, который может найти незаконный сценарий. Вы могли бы попытаться присоединить отладчик IE как Visual Studio, и возможно она повредится в точке, где проблема происходит. Но я не могу дать гарантии на той работе.

В прошлом, когда у меня были подобные проблемы, я просто прокомментировал разделы кода для тестирования, сужают, где проблема происходит, обычно в шаблоне типа двоичного поиска. Прокомментируйте половину библиотек JavaScript, и т.д.

Кроме этого, как другие сказали, этот тип проблемы происходит от больших циклов и многих setTimeout вызовов функции или setTimeout рекурсивных циклов.

0
ответ дан 27 November 2019 в 23:14
поделиться

Если JavaScript связывает обработку страницы больше 10 секунд, Вы получаете это сообщение. IE, очевидно, имеет более медленный механизм JavaScript, вызывая это.

я предполагаю, что некоторая оптимизация кода, конечно, поможет, и пытаться уменьшить сумму JavaScript, выполняющегося на загрузке страницы. Возможно, используйте setTimeout () для задержки обработки некоторых ненужных вещей, если Вы имеете к.

Насколько инструменты идут, используют профилировщика Firebug для наблюдения, где Вы проводите так много времени.

0
ответ дан 27 November 2019 в 23:14
поделиться

Длительные сценарии по-разному обнаруживаются разными браузерами:

  • IE выдает предупреждение после выполнения 5 миллионов операторов ( дополнительная информация на MSDN )
  • Firefox предупредит, если сценарий выполнит дольше 10 секунд ( подробнее о MDN )
  • Safari выдаст предупреждение, если скрипт займет больше 5 секунд
  • Chrome (1.0) не имеет установленного лимита и будет просто продолжать попытки до тех пор, пока не возникнет исключение OutOfMemory в этот момент происходит сбой
  • Opera просто продолжает работать вечно без предупреждения.

Николас Закас написал отличную статью по этой теме.

Таким образом, лучший способ избежать этих проблем - уменьшить количество циклов, рекурсии и манипуляций с DOM.

52
ответ дан 27 November 2019 в 23:14
поделиться

Для IE диалог основан на количестве обработанных JS-команд. См. Здесь информацию и способ изменения по умолчанию: http://support.microsoft.com/kb/175500

1
ответ дан 27 November 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: