Quantcast
Channel: IT社区推荐资讯 - ITIndex.net
Viewing all articles
Browse latest Browse all 15843

不断刷新页面的session超时控制

$
0
0
注:原创作品,转载请注明出处


解决方案:
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推荐




Viewing all articles
Browse latest Browse all 15843

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>