Window:requestIdleCallback() 方法

window.requestIdleCallback() 方法将一个函数排队,以便在浏览器空闲时调用。这使开发人员能够在主事件循环上执行后台和低优先级工作,而不会影响关键事件(如动画和输入响应)的延迟。函数通常按先进先出的顺序调用;但是,如果需要,具有指定timeout的回调可能会按非顺序调用,以便在超时前运行它们。

您可以在空闲回调函数中调用requestIdleCallback() 以安排另一个回调,以便最早在事件循环的下一次遍历中发生。

注意:对于所需的工作,强烈建议使用timeout选项,因为否则回调可能需要几秒钟才能触发。

语法

js
requestIdleCallback(callback)
requestIdleCallback(callback, options)

参数

callback

对应该在不久的将来调用的函数的引用,当事件循环空闲时。回调函数传递一个IdleDeadline对象,描述可用时间量以及回调是否因超时而运行。

options 可选

包含可选的配置参数。目前仅定义了一个属性

timeout

如果此参数表示的毫秒数已过,并且尚未调用回调,则在事件循环中排队一个执行回调的任务(即使这样做有导致负面性能影响的风险)。timeout必须为正值,否则将被忽略。

返回值

一个 ID,可用于通过将其传递到window.cancelIdleCallback()方法中来取消回调。

示例

规范

规范
requestIdleCallback() 协作调度后台任务
# the-requestidlecallback-method

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅