2016-06-15 10 views

答えて

0

ロック画面とは...ユーザーがウェブサイトからログアウトし、ユーザー名&パスワードで昇格するということですか?一定の時間の後に?

これはまっすぐに見えます。クッキーの有効期限を、ログイン状態にあると見なすことができる最大数分に設定してください。だから期限切れ後?ユーザーがインタラクションすると、ログイン画面に移動します。

別の解決策:

あなたはJavascriptの変数の最後のユーザインタラクションのタイミングを保存してから、最後の相互作用と現在時刻との時間差を計算するのsetIntervalメソッドで別のメソッドを実行することができます値が大きければ...自動リダイレクト限界よりも。

0

あなたの体にいくつかのイベント(mouseover、mousemove、keydown、scrollなど)をバインドします。したがって、ユーザーが何かをしている場合、イベントがトリガーされます。イベントがトリガーされると、現在の時刻でフラグが更新され、5秒ごとにリッスンするwebworkerを構成します(またはsetInterval()メソッドを使用できます)。 5秒ごとに、コールバック関数はユーザが最後に何をしたかをチェックします。タイムアウト時間を超えている場合は、スクリーンロックなどの操作を行います。

+0

[Webworkers](http://caniuse.com/#feat=webworkers)は、この機能のために難しく、過度に機能し、IE 11と互換性がありません。それ以外は、健全な戦略です。 –

+0

その後、setIntervalはjavascriptにあり、x時間間隔ごとにチェックインして同じことを行います。 – SambitD

0

Dateを使用して特定の時点をマークし、それをタイマーとして使用することができます。

addEventListenerを使用して、タイマーをリセットするイベントをリスンすることができます。

最後に、intervalを設定して、最後のユーザー操作のDateとの違いをテストできます。

//https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener 
 

 
var lastAction = new Date(); 
 
var lastActionInterval = setInterval(function(){ 
 
\t //if more than 5 seconds (5000 milliseconds) 
 
\t if(new Date() - lastAction > 5 * 1000) { 
 
\t \t //Act on timeout 
 
\t \t alert("timeout!"); 
 
\t \t //Stop checking 
 
\t \t clearInterval(lastActionInterval); 
 
\t } 
 
},1000); //Checks every second (1000 milliseconds) 
 
function userDidSomething(){ 
 
\t lastAction = new Date(); 
 
} 
 
//bind mousemove and keydown actions to reset our timer 
 
window.addEventListener("mousemove", userDidSomething, false); 
 
window.addEventListener("keydown", userDidSomething, false);

EDIT 1

簡単な方法は、setTimeoutを使用し、単にユーザのアクションにそれをリセットすることであろう。

//https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener 
 
var userActionHandle; 
 
function userDidSomething() { 
 
\t clearTimeout(userActionHandle); 
 
\t userActionHandle = setTimeout(function() { 
 
\t \t \t alert("5 seconds of inactivity"); 
 
\t \t }, 5000); 
 
} 
 
window.addEventListener("mousemove", userDidSomething, false); 
 
window.addEventListener("keydown", userDidSomething, false); 
 
//Start timeout 
 
userDidSomething();

関連する問題