鍍金池/ 問答/HTML5  HTML/ web項目如何監(jiān)聽用戶關(guān)閉瀏覽器tab、窗口事件

web項目如何監(jiān)聽用戶關(guān)閉瀏覽器tab、窗口事件

在web前端項目中,需要實現(xiàn)一個需求
1、記錄用戶登錄登出行為
2、用戶關(guān)閉窗口則記錄登出

遇到一個問題沒卡過去。就是怎么樣監(jiān)聽到用戶關(guān)閉了窗口?如何判斷用戶開了多個tab,關(guān)閉一個不屬于登出行為?刷新頁面時也不屬于登出行為。

沒有很好的思路。求解

回答
編輯回答
背叛者

換個思路,不用去監(jiān)聽瀏覽器本身.而是做個長鏈或者websocket就行了,這個和統(tǒng)計在線人數(shù)的道理一樣.
至于所謂的判斷用戶開了多個tab,關(guān)閉一個不屬于登出行為,你可以給每個用戶做個特征比如user_id.
例如:

$userList[$uid]=0;
on('login')時,++$userList[$uid];//=1便是則首次登錄
on('disconnect')時,--$userList[$uid];//=1便是最后一次斷開

這樣就完美了.
補充個突然想到的比喻:判斷魚兒上鉤,不是去盯著魚有沒有張嘴,而是盯著線有沒有動.

2018年2月24日 16:00
編輯回答
近義詞

還有這種奇葩需求??
將token保存在sessionstorage里不知道行不行

2018年4月11日 02:49