JS 浏览器关闭事件
JS判断页面刷新、关闭标签页、关闭浏览器,关闭页面之前的操作方法
这几天在想一个问题,就是用户登录时,使用session保存用户登录数据和时间,那用户退出的时候怎么能得到该用户的退出时间呢?? 因为用户可能不是使用页面中给好的"退出"按钮来触发你写的保存用户退出的方法,而是直接Alt+F4,直接关闭当前这个标签页,或者是直接关闭这个浏览器. 而且这个功能实现了, 才能实现在线时长的统计.
大家也都知道,做一个屌丝程序员,都面临着各种2b用户的蛋疼非法操作. 拿老板工资,没办法必须满足他们的需求.. 嗯,就是这样
另外,Global的Session_End这个事件貌似也可以,但是不够稳定、好用.
效果如图:
接下来,我开始尝试使用js判断用户的操作.然后使用ajax,转向应用程序页面进行数据操作.
如图:
js判断用户是关闭浏览器、页面标签、还是刷新.
用ajax跳转应用程序页面
在这个应用程序页面进程用户退出数据的保存操作.
代码不难..这时候会发现方法行不通. 刷新的时候,可以进入操作页面,但是在关闭浏览器的时候,不会执行操作页面的代码,只能想其他办法了,至于为什么不行,这个可能跟页面运行机制有关系,关闭浏览器了,主页面先运行Js代码,再跳转ashx的同时主页面已经关闭.要想能在主页面的Js中调用执行方法在关闭页面之前运行保存用户信息的方法,应该怎么做??
百思不得其解, 我突然想到webserver. 貌似这玩意挺好使的~ 我决定尝试看看.木有想到还真行的通 ~
我相信这个问题的解决方法有很多跟我一样的程序猿会想知道.. 那今天我就分享下这段代码~
这里还有个问题就是浏览器的兼容性问题. 每个浏览器获取"关闭"的位置不一样.所以这个兼容性要园友们自己下去慢慢调调看. 这里我已经调试好IE9的..
代码如下:
Web服务页面代码 :
OK 搞定..希望能帮助到有需要的博友. 也希望你们能多多支持我、关注下我 ~