window方法:setImmediate()
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 | 不支持 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |