当InternetExplorer达到一段Javascript的最大同步指令数时,将显示此消息。默认最大数量为5,000,000条指令,您可以通过编辑注册表在单台计算机上增加此数量。
现在,Internet Explorer跟踪脚本引擎当前页面的已执行脚本语句总数,并在每次启动新脚本执行时重置该值,例如超时或事件处理程序。 当该值超过阈值量时,Internet Explorer将显示一个“长时间运行的脚本”对话框。
对于可能正在查看您的页面的所有用户而言,解决问题的唯一方法是分摊循环使用计时器执行的迭代次数,或重构代码以使其不需要处理那么多指令。
使用计时器打破循环相对简单:
var i=0;(function () { for (; i < 6000000; i++) { // 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; } }})();


