Nic*_*ick 13 forms jquery http session-timeout
我有一个会话超时为15分钟的网站.在某些页面上,用户偶尔会花费超过15分钟的时间来填写回复.在这种情况下,保持会话活动的最佳解决方案是什么?
我已经JQuery在这些页面上使用了,所以可能ping服务器,但是在什么事件上呢?
后端是Struts开启的Tomcat.
Ale*_*gen 28
鉴于您不想更改网站的会话超时..
在javascript中设置超时/间隔(<15min)事件,并决定在事件触发时要执行的操作.如果您希望会话在页面打开时处于活动状态,那么很好,每隔<15分钟继续执行ping操作.但这可能不是你想要的,因为离开公共计算机的用户应该在某个时候退出.
您可以维护一个变量lastActivity,该变量在每个文档mousemove或文档keydown上更新.如果自上次ping以来有任何活动,请再次ping.
为了更复杂,您可以计算事件并仅在事件数>超时阈值时ping服务器.
基本的例子:
setInterval(function(){
$.get('/ImStillAlive.action');
}, 840000); // 14 mins * 60 * 1000
Run Code Online (Sandbox Code Playgroud)
通过基本检查打字活动:
$(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();
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34827 次 |
| 最近记录: |