в сервлете вы должны поместить response.setStatus(response.SC_MOVED_PERMANENTLY);
, чтобы отправить статус xmlHttp '301', необходимый для перенаправления ...
, а в функции $ .ajax вы не должны использовать .toString()
function ..., just
if (xmlHttp.status == 301) {
top.location.href = 'xxxx.jsp';
}
проблема в том, что она не очень гибкая, вы не можете решить, куда вы хотите перенаправить ..
перенаправление через сервлеты должно быть лучшим способом. но я все еще не могу найти правильный способ сделать это.
Вовлеките себя копия Профилировщика Страницы IBM:
Это свободно (всегда победа). Запустите его в фоновом режиме, дайте ему несколько секунд, затем обновите страницу в IE. Вернитесь к профилировщику, и это перечислит все ресурсы, используемые на странице, и даст Вам подробную информацию о профиле - в особенности, где JavaScript занимает много времени для выполнения.
Это должно быть хорошее начало к нахождению источника Вашей проблемы.
, Если бы теги script встроены, я предложил бы создать локальную копию файла и выделить теги script для разделения файлов, если Вы можете.
Удалите половину кода и посмотрите, происходит ли это все еще. В противном случае это находится в половине, Вы удалили. Повторитесь, пока Вы не выясняете, какой блок кода вызывает проблему.
Это обычно - бесконечный цикл, который вызывает это. Проверьте свои циклы и их условия выхода.
Я не полагаю, что существует инструмент, который может найти незаконный сценарий. Вы могли бы попытаться присоединить отладчик IE как Visual Studio, и возможно она повредится в точке, где проблема происходит. Но я не могу дать гарантии на той работе.
В прошлом, когда у меня были подобные проблемы, я просто прокомментировал разделы кода для тестирования, сужают, где проблема происходит, обычно в шаблоне типа двоичного поиска. Прокомментируйте половину библиотек JavaScript, и т.д.
Кроме этого, как другие сказали, этот тип проблемы происходит от больших циклов и многих setTimeout вызовов функции или setTimeout рекурсивных циклов.
Если JavaScript связывает обработку страницы больше 10 секунд, Вы получаете это сообщение. IE, очевидно, имеет более медленный механизм JavaScript, вызывая это.
я предполагаю, что некоторая оптимизация кода, конечно, поможет, и пытаться уменьшить сумму JavaScript, выполняющегося на загрузке страницы. Возможно, используйте setTimeout () для задержки обработки некоторых ненужных вещей, если Вы имеете к.
Насколько инструменты идут, используют профилировщика Firebug для наблюдения, где Вы проводите так много времени.
Длительные сценарии по-разному обнаруживаются разными браузерами:
Николас Закас написал отличную статью по этой теме.
Таким образом, лучший способ избежать этих проблем - уменьшить количество циклов, рекурсии и манипуляций с DOM.
Для IE диалог основан на количестве обработанных JS-команд. См. Здесь информацию и способ изменения по умолчанию: http://support.microsoft.com/kb/175500