Как избежать всплывающих окон Unresponsive Script в Firefox с долго работающим Javascript? - PullRequest
9 голосов
/ 16 декабря 2009

Я хочу сравнить некоторый код Javascript в браузере, но он может вызвать всплывающее окно Firefox «Предупреждение: скрипт не отвечает».Это позволяет пользователю нажать «Остановить сценарий» в случае, если браузер пойман в безудержной функции.Пока отображается всплывающее окно, текущая функция была остановлена.Это не идеально, так есть ли способ запустить мои тесты по-другому, чтобы Firefox не вывел это предупреждение и не испортил мои результаты?

Ответы [ 5 ]

11 голосов
/ 16 декабря 2009

В адресной строке Firefox введите about: config

Вы хотите изменить dom.max_script_run_time так, чтобы он был достаточно большим для запуска ваших скриптов.

9 голосов
/ 16 декабря 2009

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

http://www.sonofsofaman.com/hobbies/code/settimeout.asp

4 голосов
/ 17 декабря 2009

Смотрите в блоге Николая Ч. Закаса Что определяет, что сценарий является долгосрочным? (в 2009/01/05)

Ускорьте свой JavaScript, часть 1 http://www.nczonline.net/blog/2009/01/13/speed-up-your-javascript-part-1/

Есть причины и способы, как избежать диалога

2 голосов
/ 16 декабря 2009

Вы можете использовать скрипт из этого вопроса, чтобы разбить обработку длинных списков на более мелкие куски:

Как вернуть (кратко) управление браузеру во время интенсивной обработки JavaScript?

0 голосов
/ 05 февраля 2013

Код ниже решил эту проблему для меня ...

<script type="text/javascript">
   function downloadJSAtOnload() {
   var element = document.createElement("script");
   element.src = "deferredfunctions.js";
   document.body.appendChild(element);
   }
   if (window.addEventListener)
   window.addEventListener("load", downloadJSAtOnload, false);
   else if (window.attachEvent)
   window.attachEvent("onload", downloadJSAtOnload);
   else window.onload = downloadJSAtOnload;
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...