インターバルよりも、ウィンドウ ブラー リスナーとウィンドウ フォーカス リスナーを追加することをお勧めします。ぼやけて、現在の時刻を記録します。焦点を合わせて、まだログインしている/同期している/必要なことは何でも検証します。
基本的にはまったく同じですが、ページ全体の速度を一定間隔で遅くするのではなく、必要な場合にのみ実行します。
アップデート
var $window = $(window),
$window.__INACTIVITY_THRESHOLD = 60000;
$window.add(document.body); //necessary for mobile browsers
$window.declareActivity = function () { $window.__lastEvent = new Date(); };
$window.blur($window.declareActivity);
$window.focus(function(){
var diff = (new Date()) - $window.__lastEvent;
if (diff > $window.__INACTIVITY_THRESHOLD) {
$window.trigger("inactivity");
}
});
$window.on("inactivity", "", null, function () {
//your inactivity code
});
電話の電源がオフになっている場合、そのぼかしイベントは大ざっぱに見えますが、すべての状況/モバイルデバイスでそれを信頼できるかどうかはわかりません. だから私はおそらく次のようなものを投げ込むでしょう:
$(document.body).on("click scroll keyup", "", null, $window.declareActivity);
ユーザーが立ち去ったときにも非アクティブタイマーが機能するようにします。サイトによっては、その正確なイベント リストを調整するか、単に $window.declareActivity(); をスローする必要がある場合があります。ユーザー入力に応答する既存のスクリプトに追加します。