2017-07-10 3 views
2

さわやかつながる:私が設定していますアイドル時間として10秒間、最初のタブを残して10秒間ユーザーをスローします。00:00:05時間に最初のタブを開いたと仮定し、00:00:10時間に第2タブを開いて作業します00:00:13時間の2番目のタブと、プロジェクトのログアウトに使用する両方のタブを残して00:00:23と表示されますか?それはログアウトする00:00:15、私はそれが正しくリフレッシュされていない場合は、ここで何が起こっているかわからないどのように私はそれを使用している長い時間のために2番目のタブに滞在することができますか?それが正しくリフレッシュされている場合、最初に開いたタブとコードに基づいてどのように私をログアウトすることができますか?のlocalStorageは、私はアイドル、タブ間ではJavaScriptを使用して、複数のタブのための単一のタブのために正常に動作し、以下のコードは、それを、例えばのために適切</p> <p>働いていないときに、ユーザーを発射しようとしています

<script> 
var IDLE_TIMEOUT = 10; //seconds 
localStorage.setItem("setTimeOut", "0"); 

document.onclick = function() {  
    localStorage.setItem("setTimeOut", "0"); 
}; 

document.onmousemove = function() { 
    localStorage.setItem("setTimeOut", "0"); 
}; 

document.onkeypress = function() { 
    localStorage.setItem("setTimeOut", "0"); 
}; 

document.onfocus = function() { 
    localStorage.setItem("setTimeOut", "0"); 
}; 


window.setInterval(CheckIdleTime, 1000); 
function CheckIdleTime() { 
    localStorage.setItem("setTimeOut", parseInt(localStorage.getItem("setTimeOut"))+1); 
    if (localStorage.getItem("setTimeOut") >= IDLE_TIMEOUT) { 
     alert('Times up!, You are idle for about 15 minutes, Please login to continue'); 
     document.location.href = "logout.php"; 
    } 
} 
</script> 
+0

あなたは解決策を得ましたか? ...もしあれば、ここに関数スクリプトを投稿してください...私も同じ必要があります...ありがとう – user3209031

+0

遅れて申し訳ありません、以下の解決策が私のために働きます。 –

答えて

1

各タブで1秒ごとに値を増やすのではなく、1秒ではなく開いているタブの数を増やして1秒ごとに増やすのではなく、インタラクションの現在の時間を設定して毎秒比較します。

だから、あなたのイベントハンドラでは、代わりに次の操作を行います。

localStorage.setItem("lastInteraction", Date.now()) 

...そして、あなたのCheckIdleTime()機能で、localStorage.setItem()を削除し、これにあなたのif条件を変更:

Number(localStorage.getItem("lastInteraction")) + (IDLE_TIMEOUT * 1000) < Date.now() 

条件は、最後の対話が発生した時刻をとり、タイムアウト定数を追加して、現在の時刻(現在)がその値を超えたかどうかを確認します。

1

この行は、アプリケーション(タブ)のインスタンスごとに毎秒実行されます。それはあなたが2ではなく1

localStorage.setItem("setTimeOut", parseInt(localStorage.getItem("setTimeOut"))+1); 

の毎秒により、2つのタブ開いて、そのインクリメントを持っている場合は、ユーザーがむしろカウントダウンよりも、ログアウトされますときに、特定の時間を使って、この問題を解決できることを意味します。

関連する問題

 関連する問題