注:原创作品,转载请注明出处
解决方案:
1,在页面元素加载之前,定义js计时器,并赋值为0;
2,在页面元素加载之前,绑定body的鼠标单击事件处理函数--每次鼠标单击body都重新赋值计时
器为0;
3,在html中body中定义一个隐藏域,值为服务器上session的最大时间。
4,在页面元素加载完毕后,启动session超时监听器:该监听器实现的功能是:
获取页面上隐藏域的session的最大超时时间,
比较计数器和session最大值,如果计时器的数值小于session的最大时间则,计数器+1,重新
调用session监听器, 如果计数器的数值大于等于session的的最大时间,则调用dwr或ajax
让后台的session失效
实例:
已有 0人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐
解决方案:
1,在页面元素加载之前,定义js计时器,并赋值为0;
2,在页面元素加载之前,绑定body的鼠标单击事件处理函数--每次鼠标单击body都重新赋值计时
器为0;
3,在html中body中定义一个隐藏域,值为服务器上session的最大时间。
4,在页面元素加载完毕后,启动session超时监听器:该监听器实现的功能是:
获取页面上隐藏域的session的最大超时时间,
比较计数器和session最大值,如果计时器的数值小于session的最大时间则,计数器+1,重新
调用session监听器, 如果计数器的数值大于等于session的的最大时间,则调用dwr或ajax
让后台的session失效
实例:
<html><head><script type="text/javascript"> //定义计时器 var monitorCount = 0; //绑定body的onclick处理函数 document.body.onclick = function() { if(typeof bodyOnClickFunction == 'function') { bodyOnClickFunction(); } } //body的单击处理函数 function bodyOnClickFunction() { resetTimeoutCount(); } //重置计数器为0 function resetTimeoutCount() { monitorCount = 0 } var timeOutFunction = "sessionTimeOutMonitor()"; function sessionTimeOutMonitor() { var sessionTimeCount = document.getElementById("sessionTimeCount").value / 60; if(monitorCount < sessionTimeCount) { monitorCount++; setTimeOut(sessionTimeOutMonitor,60 * 1000); } else { //调用ajax或者dwr调用使后台的session失效 } } </script></head><body onload="sessionTimeOutMonitor();"><input type="hidden" value="从服务器上获取session的最大超时数值" id="sessionTimeCount"/></body></html>
已有 0人发表留言,猛击->> 这里<<-参与讨论
ITeye推荐