2008-11-17 3 views
8

Я разрабатываю сайт, который широко использует JavaScript (jQuery). Я регулярно получаю IE «Прекратить запуск этого скрипта»? когда я пытаюсь закрыть браузер.«Прекратите выполнение этого скрипта?» error

Я предполагаю, что проблема возникает из-за того, что сайт является одной страницей, использующей AJAX, поэтому нет никаких обратных передач для сброса количества выполненных команд IE.

Нарушение реестра на стороне клиента не является вариантом.

Кто-нибудь знает, как обойти эту ошибку?

ОБНОВЛЕНИЕ: на странице есть число интервалов времени (~ 10), которые постоянно проходят опрос с интервалом 30 или 60 секунд.

+0

Возможно, вы захотите посмотреть ответы на вопрос «[сценарий на этой странице вызывает то, что он работает медленно» (http://stackoverflow.com/questions/212550/a-script-on-this- страниц является вызывающим, то есть к запуску-медленно)». – 2008-11-18 05:11:50

ответ

3

Вы случайно используете обработчик window.onunload? Если вы это сделаете, вы можете проверить, нет ли у вас бесконечного цикла.

Чтобы проверить, в нижней части JavaScript сделать:

window.onunload = null; 

и тест снова.

+0

это какой не проблема в моем случае. Я просто запускал длинный скрипт на странице. – liammclennan 2011-05-22 07:46:24

+0

@liammclennan Итак, у вас был скрипт, который был всегда (или почти всегда) работает, но только после закрытия вкладки появилось предупреждение? – 2011-05-23 18:29:25

1

У вас есть только длинный сценарий/бесконечный цикл в вашем коде. Более подробная информация может получить более точный ответ.

Если на вашей странице есть много интервалов, тогда вы хотите отменить их, прежде чем перейти от страницы. Используйте window.onunload, чтобы очистить все интервалы.

4

Я также столкнулся с этой проблемой и преодолел эту проблему, разделив непрерывное выполнение DOM. Для этого подхода я использовал функцию setTimeout. Решение этой проблемы полностью зависит от того, как вы делите непрерывное выполнение.

+0

setTimeout - это путь! Протестировано в IE8 и с большими наборами данных AJAX более 5000 наименований. – 2013-04-30 18:13:21

1

Я просто blogged about this и положил, что я думаю, довольно стильное решение. Так что посмотри. Как уже упоминалось выше, мое решение просто разбивает длительные операции на куски, но я предоставляю хороший класс полезности для этого.

+0

Ваше решение интересное. Я не пробовал, но если он работает, то это чрезвычайно полезно. – liammclennan 2011-05-22 07:45:43

0

Может также рассмотреть вопрос о расколоть длинную операцию на $ (документ) .ready() и $ (окно) .load()

0

я просто была проблема с JQuery селекторы, которые были слишком общими: например, $("*")

2

Проблема: «Стоп работает этот сценарий?» Ошибка

Решение: Вы можете сказать, что это проблема совместимости или ошибка, как тот же самый материал работает без каких-либо ошибок в Mozilla, но он работает в IE 6,7 или 8 с сообщением об ошибке «Прекратите выполнение этого скрипта». Корпорация Майкрософт предоставила исправление для исправления этой проблемы в IE. Так что, пожалуйста, перейдите по следующей ссылке и загрузить «Microsoft Fix It» и установить то же самое и перезапустить браузер, и вы никогда не увидите «Остановить запуск этого сценария» Ошибка: http://support.microsoft.com/kb/175500#FixItForMeAlways

0

Как человек, который упоминается $ («*»), попробуйте не использовать $ (this) в качестве селектора привязок для пользовательских событий, это привело к тому, что мой последний сценарий разрушил время загрузки системы.

Смежные вопросы