0

正常に動作しているセッションタイムアウトのためにこれを実装しました:

var sessionTimeoutWarning = "1";
var sessionTimeout = "2";
var timeOnPageLoad = new Date();
var sessionWarningTimer = null;
var redirectToWelcomePageTimer = null;
//For warning
var sessionWarningTimer = setTimeout('SessionWarning()', parseInt(sessionTimeoutWarning) * 60 * 1000);
//To redirect to the welcome page
var redirectToWelcomePageTimer = setTimeout('RedirectToWelcomePage()', parseInt(sessionTimeout) * 60 * 1000);

//Session Warning
function SessionWarning() {
    var minutesForExpiry = (parseInt(sessionTimeout) - parseInt(sessionTimeoutWarning));
    //var minutesForExpiry = "1";
    var message = "Your session will expire in another " + minutesForExpiry + " mins. Do you want to extend the session?";

    //Confirm the user if he wants to extend the session
    answer = confirm(message);

    //if yes, extend the session.
    if (answer) {

        //Clear the RedirectToWelcomePage method
        if (redirectToWelcomePageTimer != null) {
            clearTimeout(redirectToWelcomePageTimer);
        }

        var currentTime = new Date();
        var timeForExpiry = timeOnPageLoad.setMinutes(timeOnPageLoad.getMinutes() + parseInt(sessionTimeout));
        if (Date.parse(currentTime) > timeForExpiry) {
              alert("Session expired. You will be redirected to welcome page");
            window.location = "../login.aspx";
        }
        else {
            timeOnPageLoad = new Date();
            sessionWarningTimer = setTimeout('SessionWarning()', parseInt(sessionTimeoutWarning) * 60 * 1000);
            redirectToWelcomePageTimer = setTimeout('RedirectToLoginPage()', parseInt(sessionTimeout) * 60 * 1000);
        }
    }
    else {
        timeOnPageLoad = new Date();
        sessionWarningTimer = setTimeout('SessionWarning()', parseInt(sessionTimeoutWarning) * 60 * 1000);
        redirectToWelcomePageTimer = setTimeout('RedirectToLoginPage()', parseInt(sessionTimeout) * 1);

    }

}

//Session timeout
function RedirectToLoginPage() {
    window.location = "../login.aspx";
}

クエリ: 確認メッセージが表示されたときに、ユーザーがその確認メッセージを 5 分以内にクリックしなかった場合、それを追跡/有効にするにはどうすればよいですか?自動的に閉じて、セッションが期限切れになった新しいポップアップを表示します。

お知らせ下さい

4

1 に答える 1

0

一度開いた警告ボックスを制御することはできません。できることは、アラート ボックスを表示してから 5 分後にページを更新することです。そのため、アラート ボックスを表示した後に setTimeout を記述し、セッションが期限切れになったことを示すポップアップを表示できるページにリダイレクトできます。

于 2012-09-03T09:30:20.770 に答える