Window:requestIdleCallback() 方法
window.requestIdleCallback() 方法將一個函式排入佇列,以便在瀏覽器的空閒時段呼叫。這使得開發者可以在主執行緒上執行後臺和低優先順序的任務,而不會影響對延遲敏感的事件(例如動畫和輸入響應)。函式通常以先進先出的順序呼叫;但是,如果指定了 timeout 的回撥函式為了在超時時間過去之前執行,可能會在必要時亂序呼叫。
你可以在空閒回撥函式中呼叫 requestIdleCallback() 來排程另一個回撥,使其不早於事件迴圈的下一次透過時發生。
注意:對於必需的工作,強烈建議使用 timeout 選項,否則回撥可能需要數秒才能觸發。
語法
js
requestIdleCallback(callback)
requestIdleCallback(callback, options)
引數
回撥-
對一個函式的引用,該函式應該在事件迴圈空閒時在不久的將來被呼叫。回撥函式會傳入一個
IdleDeadline物件,該物件描述了可用的時間量以及回撥是否因為超時期限已過而執行。 options可選-
包含可選的配置引數。目前只定義了一個屬性:
超時-
如果此引數表示的毫秒數已過且回撥尚未被呼叫,則一個執行回撥的任務會被排入事件迴圈(即使這樣做可能會導致負面性能影響)。
timeout必須是一個正值,否則它將被忽略。
返回值
一個 ID,可以透過將其傳遞給 window.cancelIdleCallback() 方法來取消回撥。
示例
請參閱文章 後臺任務的協作排程 API 中的完整示例。
規範
| 規範 |
|---|
| requestIdleCallback() # the-requestidlecallback-method |
瀏覽器相容性
載入中…