window方法:setImmediate()

2018-09-25 15:01 更新

setImmediate()方法

setImmediate()方法用于中断长时间运行的操作,并在浏览器完成其他操作(如事件和显示更新)后立即运行回调函数。

注意:此功能是非标准的,不要在面向Web的生产站点上使用它:它不适用于每个用户。实现之间可能存在很大的不兼容性,并且行为可能在将来发生变化。

此方法预计不会成为标准,并且仅由Internet Explorer和Node.js 0.10+的最新版本实现。它遇到了来自Gecko (Firefox)和Webkit(谷歌/Apple)的双重阻力。

setImmediate()方法语法

var immediateID = setImmediate(func,[ param1,param2,...]);
var immediateID = setImmediate(func);
  • 其中immediateID是是立即标记的ID,稍后可以与window.clearImmediate一起使用。
  • func是你想要调用的函数能。

所有参数都将直接传递给您的函数。

笔记

该window.clearImmediate方法可用于清除即时操作,就像window.clearTimeout对window.setTimeout。

可以使用此方法代替setTimeout(fn, 0)方法来执行繁重的操作。 

可以通过几种不同的方式模拟该功能:

  • window.postMessage可用于触发即时但产生回调。请注意,Internet Explorer 8包含postMessage的同步版本,这意味着它不能用作后备。
  • MessageChannel可以在Web Workers中可靠地使用,而postMessage的语义意味着它不能在那里使用。
  • setTimeout(fn, 0)可能会被使用,但是因为根据HTML规范嵌套超过5深度的定时器,它被限制为4ms  ,它不能为setImmediate的自然即时性提供合适的polyfill。

所有这些技术都被整合到一个强大的setImmediate polyfill中。

规范

不属于任何规范,也不属于标准轨道。

浏览器兼容性

电脑端 移动端
Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
Android webview Chrome for Android
Edge Mobile Firefox for Android
Opera for Android
iOS Safari
基本支持
(非标准)
不支持 支持 不支持 支持:10 不支持 不支持 不支持 不支持 支持 不支持 不支持 不支持
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号