--- title: window.setImmediate slug: Web/API/Window/setImmediate tags: - DOM - setImmediate translation_of: Web/API/Window/setImmediate ---
{{APIRef("HTML DOM")}}{{Non-standard_header}}
该方法用来把一些需要长时间运行的操作放在一个回调函数里,在浏览器完成后面的其他语句后,就立刻执行这个回调函数。
var immediateID = setImmediate(func, [param1, param2, ...]); var immediateID = setImmediate(func);
immediateID
是这次setImmediate方法设置的唯一ID,可以作为 {{ domxref("window.clearImmediate") }} 的参数.func
是将要执行的回调函数所有参数都会直接传给你的函数。
{{ domxref("window.clearImmediate") }} 方法可以用来取消通过setImmediate设置的将要执行的语句, 就像 {{ domxref("window.clearTimeout") }} 对应于 {{ domxref("window.setTimeout") }}一样.
该方法可以用来替代 setTimeout(fn, 0)
去执行繁重的操作(heavy operations)
可以通过以下几种方式来模仿该功能:
setTimeout(fn, 0)
可以使用, 然而按照HTML规范, 嵌套深度超过5级的定时器, 会被限制在4ms , 他没有为setImmediate的天然及时性提供合适的polyfill.所有这些技术都被纳入 robust setImmediate polyfill 中.
{{Compat("api.Window.setImmediate")}}
{{ domxref("window.clearImmediate") }}
{{ spec("https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html", "Specification: Efficient Script Yielding") }}