window方法:requestIdleCallback()

2018-09-14 14:20 更新

requestIdleCallback()方法

在使用requestIdleCallback()方法之前,請仔細檢查瀏覽器兼容性表。

該window.requestIdleCallback()方法將在瀏覽器的空閑時段內(nèi)對要調(diào)用的函數(shù)進行排隊。這使開發(fā)人員能夠在主事件循環(huán)上執(zhí)行后臺和低優(yōu)先級工作,而不會影響延遲關(guān)鍵事件,如動畫和輸入響應(yīng)。函數(shù)通常以先進先出順序調(diào)用;但是,如果需要,具有指定timeout的回調(diào)可能被調(diào)用為無序,從而在超時發(fā)生之前運行回調(diào)。

您可以在空閑回調(diào)函數(shù)內(nèi)調(diào)用requestIdleCallback(),以便在下一次通過事件循環(huán)時安排另一個回調(diào)。

強烈建議使用一個timeout選項來完成所需的工作,否則在觸發(fā)回調(diào)之前可能需要多秒。

requestIdleCallback()方法語法

var handle = window.requestIdleCallback(callback[, options])

返回值

一個ID,可用于通過將回調(diào)傳遞給window.cancelIdleCallback()方法來取消回調(diào)。

參數(shù)

callback
當事件循環(huán)空閑時,應(yīng)該在不久的將來調(diào)用的函數(shù)的引用?;卣{(diào)函數(shù)傳遞一個IdleDeadline對象,該對象描述可用時間量以及是否因為超時期限到期而運行了回調(diào)。
options(可選)
包含可選的配置參數(shù)。目前只定義了一個屬性:
  • timeout:如果timeout是指定的,具有正值,并且在timeout毫秒已經(jīng)過去的時間里,回調(diào)還沒有被調(diào)用,則回調(diào)將在接下來的空閑時間被調(diào)用,即使這樣做會導致負面的性能影響。

規(guī)范

規(guī)范 狀態(tài) 注釋
后臺任務(wù)的協(xié)同調(diào)度
Proposed Recommendation
初步定義

瀏覽器兼容性

電腦端 移動端
Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
Android webview Chrome for Android
Edge Mobile Firefox for Android
Opera for Android
iOS Safari
基本支持
(試驗)
支持:47 不支持
支持:55

不支持 支持:34 不支持 支持:47 支持:47 不支持
支持:55

? 不支持
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號