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

您应该尝试 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 回答
0

这是通过计时器和一些 JavaScript 完成的。当页面上的计时器到期时,浏览器会请求一个在服务器上调用 session.invalidate() 的 URL。

于 2012-11-30T05:34:07.243 回答