我有一个网站,会话超时为15分钟.在某些页面上,用户偶尔花费超过15分钟填写回复.在这种情况下,保持活动的最佳解决方案是什么?
我已经在这些页面上使用了JQuery,所以可能要ping一个服务器,但是什么事件?
后端是Tomcat上的Struts.
解决方法
鉴于您不想更改网站的会话超时
在javascript中设置超时/间隔(<15分钟)事件,并决定事件触发时该做什么.只要您希望该会话处于活动状态,只要该页面处于打开状态,则可以继续ping每个< 15分钟但这可能不是您想要的,因为离开公用计算机的用户应该在某些时候注销. 您可以维护一个变量lastActivity,它会在每个文档mousemove或文档keydown上进行更新.如果自上次ping以来有任何活动,请再ping一次. 要获得更复杂的数据,您可以对事件进行计数,并且仅在事件数量>超时阈值
基本例子:
setInterval(function(){ $.get('/ImStillAlive.action'); },840000); // 14 mins * 60 * 1000
对基本的打字活动进行检查:
$(function(){ var lastUpdate = 0; var checkInterval = setInterval(function(){ if(new Date().getTime() - lastUpdate > 840000){ clearInterval(checkInterval); }else{ $.get('/ImStillAlive.action'); } },840000); // 14 mins * 60 * 1000 $(document).keydown(function(){ lastUpdate = new Date().getTime(); }); });