避免“;是否停止脚本"IE中的对话框
Avoiding "Stop Script?" Dialog in IE
我有一些计算量很大的Javascript代码,我想作为应用程序的一部分运行。我知道我正在与UI线程共享资源,所以我把UI分解成块,并使用Angular的$timeout一次执行每个小块,从而使UI的响应能力非常强。这很好,除了在InternetExplorer8中,我总是收到提示"停止运行这个脚本?"
我如何理解IE8的"脚本太多"阈值,以便我可以绕过它?我经常将控制权返回到主线程,以便应用程序在其他浏览器中能够响应并没有问题。我没有任何无限循环的情况。
IE8的"慢脚本"概念是基于它执行的操作数量,而不是像其他浏览器那样的任何一段时间。来自KB175500:
从Internet Explorer 4.0起…超时不再是基于Windows消息的固定值。Internet Explorer现在跟踪已执行脚本语句的总数,并在每次开始执行新脚本时重置值。。。
因此,如果您执行了大量快速执行的脚本语句,您仍然可以在较短的时间内达到极限。
调试和解决这一问题需要减少每次迭代(在您的情况下是每次$timeout
调用)所需的工作量,直到问题消失(遗憾的是,IE8不支持web工作者)。
我还没有尝试过,但我建议你不要使用超时,而是发布一个事件并捕获它来处理下一个区块,等等…希望这能欺骗IE,请告诉我们。
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- "无法获取属性'的值;style'"当试图在IE中更改样式时
- jQuery fadeIn fadeOut"眨眼;在Chrome上,在FireFox和IE上运行良好
- IE 11没有显示“;显示内容"弹出消息
- "navigator.msLaunchUri”;在IE Edge中,始终返回成功
- "对象没有't支持这种性质或方法“;在IE 8中.在调试中执行精细
- 得到"无效日期“;当仅在Javascript中在IE 11中传递动态日期时
- 避免“;是否停止脚本"IE中的对话框
- IE中不支持$(<img/>).attr(<!src",something).load()&l
- IE下降"%"在附加html字符串时从维度
- "对于“;循环不't迭代IE中的屏幕对象
- "无效的参数"在IE 8上的jQuery.prepend()中
- IE总是在<a href="#"/>被单击
- querySelectorAll for selector"而不是“;在IE 8上不起作用
- & lt;输入类型=“file"祝辞属性在IE 11中显示不正确
- jQuery IE 9在替换"tbody"时崩溃;值,单击其中的元素后
- “Expected"数量;IE 11使用.tolocalstring()/.toisostring()时出现错误
- a href="中的event.prventDefault()#"不会't防止在IE和Fir
- "NaN”;asp classic中提交值的IE出错