セッションタイマーをページに表示して、ユーザーがログアウトすることをユーザーに通知する必要があります。たとえば、30分後、このタイマーは毎秒更新されます。この関数を呼び出している各ページの onLoad() 関数でそれを行う JavaScript で関数を作成しましたが、正常に動作します。
問題は残り 5 分です。「5 分後にログアウトされます」というアラートを表示する必要があるため、以下のコードのように条件 if(Seconds ==300) を追加しました。
function UpdateTimer() {
var Seconds = TotalSeconds;
var Minutes = Math.floor(Seconds / 60);
if(Seconds ==300)
alert( "you will be logged out in 5 mins");
Seconds -= Minutes * (60);
var TimeStr = LeadingZero(Minutes) + ":" + LeadingZero(Seconds)
document.getElementById("digital").innerHTML = TimeStr;
}
問題は、セッション タイムアウトの 5 分前にアラートがポップアップしますが、ユーザーがこのアラートをクリックするまでタイマーを更新できませんでした。したがって、ユーザー アクションが発生しない場合、ユーザー セッションは引き続きタイムアウトになりますが、アラートには残り 5 分が表示されます。最悪の場合、アラートをクリックすると、タイマーは再び 5 分からカウントダウンを開始しますが、セッションは既にタイムアウトになっています。
また、ユーザーが右クリックして新しいウィンドウでページを開くと、ユーザーが開いたウィンドウで新しいページで作業しているため、セッションはタイムアウトしませんが、元のページはこれを認識していないため、カウントダウンを続行して表示します5分前にアラート。
この状況に対処するにはどうすればよいか教えてください。