在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