日期:2014-05-17  浏览次数:20642 次

非法关闭浏览器问题
做一个购物系统 ,当用户添加商品到购物车(session保存)商品锁定,假如用户关闭浏览时,怎么样把商品锁取消。

------解决方案--------------------
没有绝对的好招。。。传统方案中只能依赖于session超时的时候,利用SessionListener去监听Destory事件。

如果你的系统确实需要非常强的监控用户在线状态,就只能自行设计“心跳检测”之类的手段,但都将增加服务器的负担。比如在页面中利用Ajax每隔1分钟,向服务器发出“我还在线”的信息。而服务器端则假定持续5分钟没有收到这样的信息就判定为该用户已经离线。

简单粗暴一点的做法就是:中间件直接设置为5分钟超时,那么如果用户没有关闭浏览器,Ajax就会每隔1分钟去连接中间件以保证用户持续在线。