Java 使用JQuery的会话超时出现问题

Java 使用JQuery的会话超时出现问题,java,javascript,jquery-ui,timeout,timeout-dialog.js,Java,Javascript,Jquery Ui,Timeout,Timeout Dialog.js,我使用JQuery插件实现了一个会话超时,它的实现方式如下:, 从页面加载开始,它启动计时器,10秒后,将显示popo up。 像这样的 } 当用户空闲10秒时,此代码工作正常。但是,即使用户正在页面上执行某些操作,也会显示弹出窗口,无论用户是否空闲。我希望此代码仅在用户空闲时运行。 请在这方面帮助我 谢谢 这是通过计时器和一些JavaScript完成的。当页面上的计时器过期时,浏览器会请求一个URL来调用服务器上的session.invalidate()。当页面上的计时器过期时,浏览器请求调用

我使用JQuery插件实现了一个会话超时,它的实现方式如下:, 从页面加载开始,它启动计时器,10秒后,将显示popo up。 像这样的

}

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


谢谢

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

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


希望这有帮助。

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


希望这能有所帮助。

您应该尝试jQuery idleTimer插件


$(函数(){
var超时=10000;
$(document).bind(“idle.idleTimer”,函数(){
//当用户空闲时要启动的函数
$.timeoutDialog({超时:0.25,倒计时:30,保持活动状态\u url:'/KeepAlive.aspx',注销\u重定向\u url:'/Signin.aspx',重新启动\u是:true});
});
$(document).bind(“active.idleTimer”,函数(){
//当用户再次激活时要激发的函数
$.get('KeepAlive.aspx?date='+转义(new date());
});
$.idleTimer(超时);
});

您应该尝试jQuery idleTimer插件


$(函数(){
var超时=10000;
$(document).bind(“idle.idleTimer”,函数(){
//当用户空闲时要启动的函数
$.timeoutDialog({超时:0.25,倒计时:30,保持活动状态\u url:'/KeepAlive.aspx',注销\u重定向\u url:'/Signin.aspx',重新启动\u是:true});
});
$(document).bind(“active.idleTimer”,函数(){
//当用户再次激活时要激发的函数
$.get('KeepAlive.aspx?date='+转义(new date());
});
$.idleTimer(超时);
});

一个小小的澄清,。。我有4个页面,不包括登录页面。我是否需要在所有4页中编写此脚本setTimeout()?会话超时过期时如何调用此函数??它在控制器中吗???通常我们会使用include jsp标记来导入所有页面所需的公共java脚本文件,以便将来的所有页面也将从导入所需公共javascript文件的相同include jsp继承。在页面加载时,在DOM就绪后执行setTimeout(),。。我有4个页面,不包括登录页面。我是否需要在所有4页中编写此脚本setTimeout()?会话超时过期时如何调用此函数??它在控制器中吗???通常我们会使用include jsp标记来导入所有页面所需的公共java脚本文件,以便将来的所有页面也将从导入所需公共javascript文件的相同include jsp继承。在页面加载时,在DOM就绪后执行setTimeout()。
function ShowTimeoutWarning(){
$.timeoutDialog({timeout: 1, countdown: 60, restart_on_yes: false});
setTimeout( 'ShowTimeoutWarning();', 100000 ); 
<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>