在Internet Explorer中禁用长时间运行的脚本消息

我有一个JavaScript函数,其中包含一个for循环,该循环重复了很多次。

调用此函数后,IE浏览器将显示以下消息:

停止运行此脚本?

此页面上的脚本导致您的Web浏览器运行缓慢。如果继续运行,则您的计算机可能无响应。

我怎样才能解决这个问题?

无论如何,我可以从IE禁用此消息吗?

回答:

当InternetExplorer达到一段JavaScript的最大同步指令数时,将显示此消息。默认最大数量为5,000,000条指令,您可以通过编辑注册表在单台计算机上增加此数量。

现在,Internet Explorer跟踪脚本引擎当前页面的已执行脚本语句总数,并在每次启动新脚本执行时重置该值,例如超时或事件处理程序。 当该值超过阈值量时,Internet Explorer将显示一个“长时间运行的脚本”对话框。

对于可能正在查看您的页面的所有用户而言,解决问题的唯一方法是分摊循环使用计时器执行的迭代次数,或重构代码以使其不需要处理那么多指令。

使用计时器打破循环相对简单:

var i=0;

(function () {

for (; i < 6000000; i++) {

/*

Normal processing here

*/

// Every 100,000 iterations, take a break

if ( i > 0 && i % 100000 == 0) {

// Manually increment `i` because we break

i++;

// Set a timer for the next iteration

window.setTimeout(arguments.callee);

break;

}

}

})();

以上是 在Internet Explorer中禁用长时间运行的脚本消息 的全部内容, 来源链接: utcz.com/qa/420090.html

回到顶部