我在Code igniter中创建了一个Web应用程序。它基本上是做什么 -
我的问题 - 当JavaScript计时器正在运行时,我们是否可以阻止会话超时,以便用户不会注销并且他们的进度不会丢失?我最初的想法是它不可能,至少没有一个简单的方法,因为我们正在处理Javascript计时器(客户端)和会话超时(服务器)。
提前致谢
答案 0 :(得分:3)
在整个计时器会话中,每隔几分钟(优选2到5分钟)发送保持活动请求
此keepalive请求将尽可能轻,并且只会在服务器上获取会话并保持活动
响应也会像会话仍然是活跃的东西一样简单......
另一方面,您还可以在javascript端usersLastActivity上维护一个变量,该变量在每个文档mousemove或文档keydown和少数事件上更新。如果自上次请求以来有任何活动,则发送keepalive请求...
要了解更多信息,可以查看here发布的其他同类问题。
基本示例:
setInterval(function(){
$.get('/ImStillAlive.action');
}, 300000); // 5 mins * 60 * 1000
基本检查打字活动:
$(function(){
var lastUpdate = 0;
var checkInterval = setInterval(function(){
if(new Date().getTime() - lastUpdate > 300000){
clearInterval(checkInterval);
}else{
$.get('/ImStillAlive.action');
}
}, 300000); // 5 mins * 60 * 1000
$(document).keydown(function(){
lastUpdate = new Date().getTime();
});
});