我想运行一些有时间限制的外部 JavaScript,这样如果运行时间超过 N 秒就会停止。
某些浏览器,例如Firefox 已经通过一个对话框来执行此操作,询问您是否允许脚本继续运行。不过,我正在寻找更多:
- 我想设置自己的时间限制,而不是使用浏览器的默认时间限制(例如,我相信 Chrome 的时间限制比 Firefox 的时间限制长得多)。
- 我希望能够在每个脚本的基础上执行此操作,而不是每个页面。一个页面可能包含多个我想以这种方式限制的脚本(因此我的想法是使用
<iframe>
元素)。
我想,如果有一个简单的属性可以附加到 <iframe>
上,那会非常方便。 —例如,类似 js-time-limit="5000"
(我刚刚编的)——但我还没有找到类似的东西。
这可能吗?对浏览器中的 JavaScript 执行设置可配置的时间限制?
最佳答案
如果 iframe 正在进行计算工作并且不需要访问 DOM,则使用 Web Worker:https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers
这里还有一个库,可以为你抽象出困难的部分! http://adambom.github.io/parallel.js
重要部分:
Dedicated Web Workers provide a simple means for web content to run scripts in background threads.
If you need to immediately terminate a running worker, you can do so by calling the worker's terminate() method:
myWorker.terminate();
浏览器兼容性
Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
3 3.5 (1.9.1) 10 10.60 4
关于javascript - 我可以对 JavaScript 施加时间限制(例如使用 iframe)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17238511/