首頁 > web前端 > js教程 > 如何偵測 JavaScript 中的空閒時間以優化內容預取和預先載入?

如何偵測 JavaScript 中的空閒時間以優化內容預取和預先載入?

DDD
發布: 2024-12-26 02:30:10
原創
359 人瀏覽過

How Can I Detect Idle Time in JavaScript to Optimize Content Pre-fetching and Pre-loading?

偵測 JavaScript 中的空閒時間:預取和預先載入內容指南

在 Web 開發中,偵測空閒時間對於最佳化使用者體驗至關重要。空閒時間定義為使用者不活動或 CPU 使用率最低的時間段,它提供了預取或預先載入內容的機會,從而減少頁面載入時間並增強回應能力。

在Vanilla JavaScript 中實作空閒時間偵測

要在Vanilla JavaScript 中啟用空閒時間偵測,請使用以下方法:

var inactivityTime = function () {
    var time;
    window.onload = resetTimer;
    // DOM Events
    document.onmousemove = resetTimer;
    document.onkeydown = resetTimer;

    function logout() {
        alert("You are now logged out.")
        //location.href = 'logout.html'
    }

    function resetTimer() {
        clearTimeout(time);
        time = setTimeout(logout, 3000)
        // 1000 milliseconds = 1 second
    }
};
登入後複製

初始化和自訂

定義inactivityTime 函數後,在需要的地方初始化它(例如onPageLoad):

window.onload = function() {
  inactivityTime();
}
登入後複製

您可以透過新增更多DOM 事件來進一步自訂事件偵聽器,包括:

document.onload = resetTimer;
document.onmousemove = resetTimer;
document.onmousedown = resetTimer; // touchscreen presses
document.ontouchstart = resetTimer;
document.onclick = resetTimer;     // touchpad clicks
document.onkeydown = resetTimer;   // onkeypress is deprectaed
document.addEventListener('scroll', resetTimer, true); // improved; see comments
登入後複製

或者,使用動態註冊事件array:

window.addEventListener('load', resetTimer, true);
var events = ['mousedown', 'mousemove', 'keypress', 'scroll', 'touchstart'];
events.forEach(function(name) {
 document.addEventListener(name, resetTimer, true);
});
登入後複製

請注意,如果捲動發生在可捲動元素內,則window.onscroll 將不會觸發。為了解決這個問題,請在 window.addEventListener('scroll', resetTimer, true) 中包含第三個參數以在捕獲階段捕獲事件。

以上是如何偵測 JavaScript 中的空閒時間以優化內容預取和預先載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板