window.setImmediate - Web API 接口参考 编辑

非标准
该特性是非标准的,请尽量不要在生产环境中使用它!

该方法用来把一些需要长时间运行的操作放在一个回调函数里,在浏览器完成后面的其他语句后,就立刻执行这个回调函数。

注意: 该方法可能不会被批准成为标准,目前只有最新版本的 Internet Explorer 和Node.js 0.10+实现了该方法。它遇到了 Gecko(Firefox) 和Webkit (Google/Apple) 的阻力.

语法

var immediateID = setImmediate(func, [param1, param2, ...]);
var immediateID = setImmediate(func);
  • immediateID 是这次setImmediate方法设置的唯一ID,可以作为 window.clearImmediate 的参数.
  • func 是将要执行的回调函数

所有参数都会直接传给你的函数。

备注

window.clearImmediate 方法可以用来取消通过setImmediate设置的将要执行的语句, 就像 window.clearTimeout 对应于 window.setTimeout一样.

该方法可以用来替代 setTimeout(fn, 0) 去执行繁重的操作(heavy operations

可以通过以下几种方式来模仿该功能:

  • window.postMessage 可以被用来触发一个 immediate 但会产生回调. 请注意, Internet Explorer 8包含postMessage的同步版本, 这意味着它不能被用来作为代替品.
  • MessageChannel 可以在Web Workers 内部很好的被使用, 而postMessage 的语义意味着它不能在那使用.
  • setTimeout(fn, 0)可以使用, 然而按照HTML规范, 嵌套深度超过5级的定时器, 会被限制在4ms , 他没有为setImmediate的天然及时性提供合适的polyfill.

所有这些技术都被纳入 robust setImmediate polyfill 中.

浏览器兼容性

BCD tables only load in the browser

相关链接

window.clearImmediate

Specification: Efficient Script Yielding

Microsoft setImmediate API Demo

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:48 次

字数:3810

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文