>我已经使用 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>