0

ここで、セッション タイムアウトの警告と、ユーザーがログアウトしたことを通知するメッセージを表示する JavaScript コードをいくつか見つけました (以下に示すように)。ただし、このコードの問題は、ユーザーがコンピューターの前にいない場合です。いずれかのアラートで [OK] ボタンをクリックしても、それ以上のアクションは実行されません。そのため、現時点では、リダイレクトの 1 分前にタイムアウト警告が表示されるように設定されています。その警告が表示されると、ユーザーがボタンをクリックするまでタイマーが停止し、ユーザーが [OK] ボタンをクリックしてから 1 分後に 2 番目のメッセージが表示されます。ユーザーがその警告のボタンをクリックするまで、リダイレクトは行われません。

これを行うより良い方法はありますか?完全に分離されたタイマーを実行するのではなく、javascript を使用してセッション状態をポーリングし、実際の残り時間を調べることはできますか?

<script type="text/javascript">

    var iddleTimeoutWarning = null;
    var iddleTimeout = null;

    function pageLoad() {

        if (iddleTimeoutWarning != null)
            clearTimeout(iddleTimeoutWarning);
        if (iddleTimeout != null)
            clearTimeout(iddleTimeout);

        var millisecTimeOutWarning = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeoutWarning"]) * 60 * 1000 %>;
        var millisecTimeOut = <%= int.Parse(System.Configuration.ConfigurationManager.AppSettings["SessionTimeout"]) * 60 * 1000 %>;

        iddleTimeoutWarning = setTimeout("DisplayIddleWarning()", millisecTimeOutWarning);
        iddleTimeout = setTimeout("TimeoutPage()", millisecTimeOut);
    }

    function DisplayIddleWarning() {
        alert("Your session will expire in one minute due to inactivity.");
    }

    function TimeoutPage() {
        alert("Your session has expired due to inactivity.");
        location.replace("index.aspx");
    }

</script>

ありがとう。

4

1 に答える 1

0

alertUI とそれ以降のスクリプトの実行をブロックします。

そのため、 jQuery UIが提供する他の形式のダイアログを使用してください。

于 2013-10-17T15:41:22.763 に答える