1

JQuery プラグインを使用してセッション タイムアウトを実装しました。ページの読み込みからタイマーが開始され、10 秒後にポップアップが表示されるように実装されています。このようなものhttp://rigoneri.github.com/timeout-dialog.js/

function ShowTimeoutWarning(){
$.timeoutDialog({timeout: 1, countdown: 60, restart_on_yes: false});

}

setTimeout( 'ShowTimeoutWarning();', 100000 ); 

このコードは、ユーザーが 10 秒間アイドル状態の場合に正常に機能します。ただし、ユーザーがページで何らかの操作を行っている場合でも、ユーザーがアイドル状態であるかどうかに関係なく、ポップアップが表示されます。このコードは、ユーザーがアイドル状態のときにのみ実行されるようにします。この点で私を助けてください。

ありがとう!!!

4

3 に答える 3

1

setTimeout()を開始する一般的なjavascript関数があります。これは、web.xmlで定義されているセッションタイムアウトよりも短い時間である必要があることに注意してください。したがって、そのタイムアウトが期限切れになると、セッションを無効にするかどうかを尋ねる警告をユーザーに与えます。すべてのサーバー呼び出しとすべてのページのリロードで、このsetTimeout()をリセットします。

お役に立てれば。

于 2012-11-30T05:34:52.200 に答える
0

これは、タイマーといくつかのJavaScriptを使用して行われます。ページでタイマーが時間切れになると、ブラウザはサーバーでsession.invalidate()を呼び出すURLを要求します。

于 2012-11-30T05:34:07.243 に答える
0

jQuery idleTimer プラグイン http://www.paulirish.com/2009/jquery-idletimer-plugin/を試す必要があります。

<script type="text/javascript">

    $(function () {
        var timeout = 10000;
        $(document).bind("idle.idleTimer", function () {
            // function you want to fire when the user goes idle
            $.timeoutDialog({ timeout: 0.25, countdown: 30, keep_alive_url: '/KeepAlive.aspx', logout_redirect_url: '/Signin.aspx', restart_on_yes: true });
        });
        $(document).bind("active.idleTimer", function () {
            // function you want to fire when the user becomes active again                
            $.get('KeepAlive.aspx?date=' + escape(new Date()));
        });
        $.idleTimer(timeout);
    });

</script>
于 2013-12-15T21:20:11.350 に答える