1

セッションタイマーをページに表示して、ユーザーがログアウトすることをユーザーに通知する必要があります。たとえば、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分前にアラート。

この状況に対処するにはどうすればよいか教えてください。

4

0 に答える 0