Window:requestIdleCallback() 方法
window.requestIdleCallback()
方法将一个函数排队,以便在浏览器空闲时调用。这使开发人员能够在主事件循环上执行后台和低优先级工作,而不会影响关键事件(如动画和输入响应)的延迟。函数通常按先进先出的顺序调用;但是,如果需要,具有指定timeout
的回调可能会按非顺序调用,以便在超时前运行它们。
您可以在空闲回调函数中调用requestIdleCallback()
以安排另一个回调,以便最早在事件循环的下一次遍历中发生。
注意:对于所需的工作,强烈建议使用timeout
选项,因为否则回调可能需要几秒钟才能触发。
语法
js
requestIdleCallback(callback)
requestIdleCallback(callback, options)
参数
callback
-
对应该在不久的将来调用的函数的引用,当事件循环空闲时。回调函数传递一个
IdleDeadline
对象,描述可用时间量以及回调是否因超时而运行。 options
可选-
包含可选的配置参数。目前仅定义了一个属性
timeout
-
如果此参数表示的毫秒数已过,并且尚未调用回调,则在事件循环中排队一个执行回调的任务(即使这样做有导致负面性能影响的风险)。
timeout
必须为正值,否则将被忽略。
返回值
一个 ID,可用于通过将其传递到window.cancelIdleCallback()
方法中来取消回调。
示例
请参阅文章协作调度后台任务 API中的完整示例。
规范
规范 |
---|
requestIdleCallback() 协作调度后台任务 # the-requestidlecallback-method |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。