JS判斷頁面刷新、關閉標簽頁、關閉瀏覽器,關閉頁面之前的操作方法
這幾天在想一個問題,就是用戶登錄時,使用session保存用戶登錄數據和時間,那用戶退出的時候怎么能得到該用戶的退出時間呢?? 因為用戶可能不是使用頁面中給好的"退出"按鈕來觸發你寫的保存用戶退出的方法,而是直接Alt+F4,直接關閉當前這個標簽頁,或者是直接關閉這個瀏覽器. 而且這個功能實現了, 才能實現在線時長的統計.
大家也都知道,做一個屌絲程序員,都面臨着各種2b用戶的蛋疼非法操作. 拿老板工資,沒辦法必須滿足他們的需求.. 嗯,就是這樣
另外,Global的Session_End這個事件貌似也可以,但是不夠穩定、好用.
效果如圖:
接下來,我開始嘗試使用js判斷用戶的操作.然后使用ajax,轉向應用程序頁面進行數據操作.
如圖:
js判斷用戶是關閉瀏覽器、頁面標簽、還是刷新.
用ajax跳轉應用程序頁面
在這個應用程序頁面進程用戶退出數據的保存操作.
代碼不難..這時候會發現方法行不通. 刷新的時候,可以進入操作頁面,但是在關閉瀏覽器的時候,不會執行操作頁面的代碼,只能想其他辦法了,至於為什么不行,這個可能跟頁面運行機制有關系,關閉瀏覽器了,主頁面先運行Js代碼,再跳轉ashx的同時主頁面已經關閉.要想能在主頁面的Js中調用執行方法在關閉頁面之前運行保存用戶信息的方法,應該怎么做??
百思不得其解, 我突然想到webserver. 貌似這玩意挺好使的~ 我決定嘗試看看.木有想到還真行的通 ~
我相信這個問題的解決方法有很多跟我一樣的程序猿會想知道.. 那今天我就分享下這段代碼~
這里還有個問題就是瀏覽器的兼容性問題. 每個瀏覽器獲取"關閉"的位置不一樣.所以這個兼容性要園友們自己下去慢慢調調看. 這里我已經調試好IE9的..
代碼如下:
Web服務頁面代碼 :
OK 搞定..希望能幫助到有需要的博友. 也希望你們能多多支持我、關注下我 ~