javascript - 避免 IE 中的 "Stop Script?"对话框

标签 javascript internet-explorer angularjs

我有一些计算量大的 Javascript 代码,我想将其作为我的应用程序的一部分运行。我知道我正在与 UI 线程共享资源,因此我通过将 UI 分成 block 并使用 Angular 的 $timeout 一次执行每个小块来使 UI 响应迅速。这工作正常,除了在 Internet Explorer 8 中,我总是收到提示“停止运行此脚本?”

我如何理解 IE8 的“脚本过多”阈值,以便我可以解决它?我经常将控制权返回主线程,以便应用程序在其他浏览器中响应迅速且无问题。我没有任何无限循环情况或任何事情。

最佳答案

IE8 的“慢脚本”概念是基于它执行的操作数量,而不是像其他一些浏览器那样的任何设定的时间段。来自 KB175500 :

As of Internet Explorer 4.0...the time-out is no longer a fixed value based on Windows messages. Internet Explorer now tracks the total number of executed script statements and resets the value each time that a new script execution is started...

因此,如果您执行大量快速执行的脚本语句,您仍然可以在较短的时间内达到极限。

调试和解决这个问题是减少每次迭代(在您的情况下是每次 $timeout 调用)所做的工作量,直到问题消失(遗憾的是,因为 IE8 doesn't 支持 web workers )。

关于javascript - 避免 IE 中的 "Stop Script?"对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18366586/

相关文章:

javascript - Angular 4 日期选择器语言环境无法正常工作

excel - 加载所有动态加载 HTMLTable - VBA

html - 如何使用CSS更改IE8中禁用的html控件的颜色

c# - 是否可以在 IE 中使用 "autopopulate"字段?

javascript - 有没有办法在每个 $http.get 上禁用 $digest 的触发?

AngularJS:使工厂内通过 $http 接收的数据可以在 Controller 内访问

javascript - 将 videojs 与 videojs-ima 插件捆绑在一起

javascript - 使用 Angular 文件保护程序下载大尺寸文件

javascript - 多轴在 Highcharts 4 上不起作用

javascript - AngularJS 中 Google map 的方向标记