如何避免使用长时间运行的Javascript在Firefox中的无响应脚本弹出窗口?

时间:2009-12-16 20:17:37

标签: javascript firefox

我想在浏览器中对一些Javascript代码进行基准测试,但它可能会触发Firefox的“警告:无响应脚本”弹出窗口。这允许用户在浏览器陷入失控功能的情况下单击“停止脚本”。显示弹出窗口时,当前正在运行的功能已停止。这不是理想的,所以有没有办法以不同方式运行我的基准测试,以便Firefox不会弹出此警告并破坏我的结果?

5 个答案:

答案 0 :(得分:11)

在firefox的地址栏中输入about:config

您希望将dom.max_script_run_time更改为足以让脚本运行。

答案 1 :(得分:9)

你必须将长动作分解为较小的动作并轮流执行。这也可以提供更好的进度指示。

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

答案 2 :(得分:4)

参见Nicholas C. Zakas的博客 什么决定了脚本长期运行? (2009年1月5日)

加速JavaScript,第1部分 http://www.nczonline.net/blog/2009/01/13/speed-up-your-javascript-part-1/

有原因以及如何避免对话

的方法

答案 3 :(得分:2)

您可以使用此问题中的脚本将长列表处理为较小的块:

How can I give control back (briefly) to the browser during intensive JavaScript processing?

答案 4 :(得分:0)

以下代码为我解决了这个问题......

<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>