新建一张inline表用来单独存放在线用户,字段设置 user_id,update_time,用户有进行操作时,先判断表里是否已经有该用户的记录,如果有,就更新update_time字段,如果没有,就添加记录。
在每个html模板里,加上一个js定时器,
setInterval('updateTime', 10*3600);
每隔10分钟发送一次ajax请求,更新update_time字段。
这样,即使用户在一个页面停留时间过长,也不会被误认为不在线了。
还可以通过减少请求的间隔,来增加精确度。
这种方法的优点时对在线的判断比较准确。缺点是,对服务器压力比较大。