「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript でユーザーのアイドル時間を検出するにはどうすればよいですか?

JavaScript でユーザーのアイドル時間を検出するにはどうすればよいですか?

2024 年 12 月 21 日に公開
ブラウズ:107

How Can I Detect User Idle Time in JavaScript?

JavaScript でのアイドル時間の検出

はじめに:

Web 開発におけるユーザー アクティビティの理解パフォーマンスを最適化し、より良いユーザー エクスペリエンスを提供するために重要です。非アクティブな時間または低い CPU 使用率として定義されるアイドル時間を検出すると、コンテンツのプリロードやユーザー認証などのアクションをトリガーするのに役立ちます。

JavaScript 実装:

検出するにはJavaScript のアイドル時間には、次のバニラ 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() 関数を呼び出します:

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

カスタマイズを改善するには、配列を使用して複数のイベントを登録できます。

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

監視するイベントをカスタマイズすることで、特定のアプリケーションのニーズに合わせてアイドル時間の検出を調整できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3