如何利用cookie监听浏览器关闭,保存登出日志

web项目里嵌套了另一个项目,用长连接监听浏览器关闭或者刷新时间,然后记录日志。但是我的初始化长连接的JS的页面在切换菜单或者刷新时都会重新加载,造
成数据库记录混乱。问了一些人说可以用cookie做一个类似全局变量,然后根据这个变量判断。但是我一点思路都没,求指导。详细些

登录web外面框架之后,菜单是在另一项目里。持久化也在嵌套的项目里操作

浏览器关闭判断是不可靠的。突然断电,浏览器意外关闭,网络中断都会导致服务器没法收到通知。你的后端逻辑需要重新设计。不能指望前端正常它才能正常。

用框架来加载你要显示的页面,这样点击页面的链接就不出发离开事件,然后父页注册/onunload事件,如果刷新了父页用同步ajax注销登录并写入注销时间,同时注册onbeforeunlaod事件给出是否离开提示

总体思路就是不允许刷新父页,你可以同时写一个通用js禁用键盘的F5刷新,ctrl+R刷新操作,防止用户误操作(点击浏览器的刷新按钮进行操作就没办法控制了,点击浏览器刷新按钮就当做注销了,但是可以通过onbeforeunload事件给出提示)

以前我想过用unlaod事件判断关闭浏览器,实际不可取。
其实利用cookie还是有点办法的:
js不用轮询服务器,只要依间隔不断记录cookie就行了。
比如1分钟内先获取,在cookie记录一次,登陆系统时候立即进行一次cookie读取操作。
如果获取的cookie时刻超过1分钟就说明关闭浏览器后重开的。发给服务器信息
检测刷新的话就是短于一分钟cookie。发给服务器信息
如果要检测离开的话还是得靠seesion的。