新聞中心
什么是requestIdleCallback及使用場(chǎng)景,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)建站總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)絡(luò)營(yíng)銷策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、微信小程序開(kāi)發(fā)、軟件開(kāi)發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!
requestIdleCallback
維護(hù)一個(gè)隊(duì)列,將在瀏覽器空閑時(shí)間內(nèi)執(zhí)行。它屬于 Background Tasks API,你可以使用 setTimeout
來(lái)模擬實(shí)現(xiàn)
window.requestIdleCallback = window.requestIdleCallback || function(handler) {
let startTime = Date.now();
return setTimeout(function() {
handler({
didTimeout: false,
timeRemaining: function() {
return Math.max(0, 50.0 - (Date.now() - startTime));
}
});
}, 1);
}
可以在 ric
中執(zhí)行任務(wù)時(shí)需要注意以下幾點(diǎn):
執(zhí)行重計(jì)算而非緊急任務(wù) 空閑回調(diào)執(zhí)行時(shí)間應(yīng)該小于 50ms,最好更少 空閑回調(diào)中不要操作 DOM,因?yàn)樗緛?lái)就是利用的重拍重繪后的間隙空閑時(shí)間,重新操作 DOM 又會(huì)造成重拍重繪
React 的時(shí)間分片便是基于類似 requestIdleCallback
而實(shí)現(xiàn),然而因?yàn)?ric
的兼容性及 50ms 流暢問(wèn)題,React 自制了一個(gè)實(shí)現(xiàn): scheduler。
關(guān)于什么是requestIdleCallback及使用場(chǎng)景問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
分享題目:什么是requestIdleCallback及使用場(chǎng)景
網(wǎng)頁(yè)地址:http://fisionsoft.com.cn/article/gddpih.html