【用户在线统计】如何处理浏览器关闭时候的session清理问题
来源:互联网 发布:js中获取父节点 编辑:程序博客网 时间:2024/05/17 03:51
在线用户统计是用HttpSessionBindingListener实现的,将实例化的类放到session对象中,
request.getSession().setAttribute("onlineUserListener", onlineUserListener);
HttpSessionBindingListener内有两个方法valueBound(HttpSessionBindingEvent event)和valueUnbound(HttpSessionBindingEvent event),前者为数据绑定,后者为取消绑定。在创建和销毁session的时候,分别调用。
问题在于,正常的退出,是可以将session销毁从而进入valueUnbound方法进行逻辑处理的,但是如果直接关闭浏览器,就无法得到session的销毁事件,没有办法进行记录。
最早使用的是window.unonload方法,在页面关闭时候可以在这个方法中调用一个action,在action中将session置为无效。但是这种实现最大的问题是,页面刷新unonload方法一样会调用,会造成session无效的重新登录。
如何能够判断unonload方法的调用是刷新还是关闭,可以分辨何时调用session无效的请求。
利用onbeforeunload ,是在onunload前触发的事件,在全局添加变量,在触发onbeforeunload记录时间,根据时间差来判断是关闭还是刷新。
var _beforeUnload_time = 0, _gap_time = 0;
window.onunload = function (){
_gap_time = new Date().getTime() - _beforeUnload_time;
// console.log(_gap_time);
if(_gap_time <= 5)
page_unload()
};
window.onbeforeunload = function (){
_beforeUnload_time = new Date().getTime();
};
- 【用户在线统计】如何处理浏览器关闭时候的session清理问题
- 在线人数统计,解决了关闭浏览器窗口,释放session的问题
- 关闭浏览器时候Session对象
- Session会在关闭浏览器的时候自动清空吗?
- JSP环境基于Session的在线用户统计深入分析,监听器Listener实现用户在线统计
- session绑定的事件监听器的应用(统计在线用户)
- JSP环境基于Session的在线用户统计深入分析
- JSP环境基于Session的在线用户统计深入分析
- 怎么能关闭浏览器时候销毁session
- xmlhttp ASP.NET在线用户列表 关闭浏览器 精确统计 单人登陆
- xmlhttp ASP.NET在线用户列表 关闭浏览器 精确统计 单人登陆
- java Session统计在线用户,并且显示在线用户
- 在用户关闭浏览器时候给出提示
- 浏览器关闭使session失效的问题的解决方法
- 服务重启后,session销毁的时候,在线统计人数出现负数
- 在不小心关闭浏览器后,如何还能访问关闭浏览器前的session信息
- 浏览器关闭时 清除服务端相应SESSION的问题
- 关于关闭浏览器后清除session的问题
- 异常之You have an error in your SQL syntax
- SVN更新代码时报错:org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir
- c++好用的json库 jsoncpp
- js中的“==”和“===”比较、以及强制类型转换的方法
- 虚幻UE4中PC端的水着色教程
- 【用户在线统计】如何处理浏览器关闭时候的session清理问题
- /usr/bin/python^M: bad interpreter: No such file
- 功能测试用例样例
- android.view.WindowLeaked:
- [6.837]A1:光线投射法(Ray-Casting)
- 关于SESSION 阻塞问题
- Java正则字符串切割
- jmeter集合点使用方法:Synchronizing Timer
- PG中视图的创建