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

解决方案 »

  1.   

    没有绝对的好招传统方案中只能依赖于session超时的时候,利用SessionListener去监听Destory事件。如果你的系统确实需要非常强的监控用户在线状态,就只能自行设计“心跳检测”之类的手段,但都将增加服务器的负担。比如在页面中利用Ajax每隔1分钟,向服务器发出“我还在线”的信息。而服务器端则假定持续5分钟没有收到这样的信息就判定为该用户已经离线。简单粗暴一点的做法就是:中间件直接设置为5分钟超时,那么如果用户没有关闭浏览器,Ajax就会每隔1分钟去连接中间件以保证用户持续在线。
      

  2.   

    <body>中有 onbeforeunload 事件,浏览器关闭时会调用,但是如果直接死机就不一定调用的到了