使用 JQuery 的会话超时有问题



>我已经使用 JQuery 插件实现了会话超时,它的实现方式如下:从页面加载开始,它启动计时器,10 秒后,将显示一个弹出窗口。像这样的东西 http://rigoneri.github.com/timeout-dialog.js/

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

}

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

当用户空闲 10 秒时,此代码工作正常。但是,即使用户在页面上执行某些操作,无论用户是否空闲,都会显示弹出窗口。我希望此代码仅在用户空闲时运行。请在这方面帮助我。

谢谢!!!

有一个通用的 JavaScript 函数来启动 setTimeout()。请注意,这应该是小于 Web .xml中定义的会话超时的时间。因此,当超时到期时,您会向用户发出警告,询问是否使会话无效。在每次服务器调用和每次页面重新加载时,您都会重置此 setTimeout()。

希望这有帮助。

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

你应该尝试 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>

相关内容

  • 没有找到相关文章

最新更新