jquery – 如何在论坛上发布用户的会话?

我有一个网站,会话超时为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();
    });
});

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...