Window:requestIdleCallback() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

window.requestIdleCallback() 方法將一個函式排入佇列,以便在瀏覽器的空閒時段呼叫。這使得開發者可以在主執行緒上執行後臺和低優先順序的任務,而不會影響對延遲敏感的事件(例如動畫和輸入響應)。函式通常以先進先出的順序呼叫;但是,如果指定了 timeout 的回撥函式為了在超時時間過去之前執行,可能會在必要時亂序呼叫。

你可以在空閒回撥函式中呼叫 requestIdleCallback() 來排程另一個回撥,使其不早於事件迴圈的下一次透過時發生。

注意:對於必需的工作,強烈建議使用 timeout 選項,否則回撥可能需要數秒才能觸發。

語法

js
requestIdleCallback(callback)
requestIdleCallback(callback, options)

引數

回撥

對一個函式的引用,該函式應該在事件迴圈空閒時在不久的將來被呼叫。回撥函式會傳入一個 IdleDeadline 物件,該物件描述了可用的時間量以及回撥是否因為超時期限已過而執行。

options 可選

包含可選的配置引數。目前只定義了一個屬性:

超時

如果此引數表示的毫秒數已過且回撥尚未被呼叫,則一個執行回撥的任務會被排入事件迴圈(即使這樣做可能會導致負面性能影響)。timeout 必須是一個正值,否則它將被忽略。

返回值

一個 ID,可以透過將其傳遞給 window.cancelIdleCallback() 方法來取消回撥。

示例

請參閱文章 後臺任務的協作排程 API 中的完整示例

規範

規範
requestIdleCallback()
# the-requestidlecallback-method

瀏覽器相容性

另見