首頁 >web前端 >js教程 >JavaScript 如何偵測使用者空閒時間?

JavaScript 如何偵測使用者空閒時間?

Patricia Arquette
Patricia Arquette原創
2024-12-10 22:50:11408瀏覽

How Can JavaScript Detect User Idle Time?

偵測JavaScript 中的空閒時間

空閒時間,定義為使用者不活動或不使用CPU 的時間段,可用於各種目的例如內容預取。本文探討了在 JavaScript 中辨識空閒時間的方法。

Vanilla JavaScript 實作

一種方法涉及利用 vanilla JavaScript 的事件為基礎的方法。透過註冊指示使用者活動(例如滑鼠移動、按鍵或捲動)的 DOM 事件的偵聽器,系統可以偵測使用者何時變成非活動狀態。

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 函數,JavaScript 腳本開始監聽使用者活動。如果在指定時間間隔(例如 3000 毫秒)內沒有觸發任何事件,則會呼叫註銷函數,表示使用者不活動。

擴大偵測覆蓋範圍

增強空閒時間偵測,可以註冊額外的 DOM 事件。常用事件包括:

  • document.onload
  • document.onmousemove
  • document.onmousedown
  • document.ontouchstart
  • document.onclick
  • document.onkeydown

對於改進了滾動期間的事件處理,可以使用以下程式碼:

document.addEventListener('scroll', resetTimer, true);
對於改進了滾動期間的事件處理,可以使用以下程式碼:

傳遞給addEventListener 的true 參數確保在捕獲階段而不是冒泡階段捕獲事件,確保即使在可滾動元素內也能進行檢測.

總結

透過利用JavaScript 的基於事件的模型,開發人員可以有效地偵測使用者空閒時間。此功能可用於各種場景,包括內容預先載入、電源管理和自動登出機制。

以上是JavaScript 如何偵測使用者空閒時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn