javascript - 我可以对 JavaScript 施加时间限制(例如使用 iframe)吗?

标签 javascript iframe

我想运行一些有时间限制的外部 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/

相关文章:

javascript - Ajax 和 PHP 交互的小困难

javascript - keydown() 和 Web Audio API 触发了太多事件

javascript - 什么是 "mobile-pagecontainer"选择器

javascript - Safari iframe 可见性隐藏不起作用

javascript - Bootstrap 响应式 iframe,具有自动高度计算

ruby-on-rails - iframe 的不同布局

javascript - d3 等值线队列和填充问​​题

javascript - 回调内部的可见性

api - 使用jQuery和Google Analytics(分析)事件跟踪YouTube视频播放

javascript - getSelection 不适用于 Chrome 中的图像