2013-01-09 86 views
0

我正在寫一個php應用程序,並將用戶登錄和註銷時間記錄在txt文件中。登錄是最簡單的部分。註銷有點棘手,我認爲。當用戶會話通過選擇註銷選項手動終止時,我可以不用再想到就可以跟蹤註銷時間。但是,當他關閉瀏覽器的選項卡或窗口時,我該怎麼辦?我想我必須使用js來檢測這些事件與window.onbeforeunload =「foobarA()」window.onunload =「foobarB()」,然後觸發php跟蹤時間txt作爲註銷時間。但是這隻檢查瀏覽器的窗口關閉效果。如果用戶關閉了我們的應用程序正在運行的選項卡,然後在沒有關閉瀏覽器的情況下正在播放或瀏覽互聯網幾個小時,我如何跟蹤精確的註銷時間?關閉瀏覽器時的跟蹤會話註銷時間

+1

你不能。 (不*精確*無論如何) – dualed

+0

不能使用析構函數完成。當我瞭解到C++析構函數在類實例被終止時執行。我不確定它是否適用於PHP,但您可以嘗試。 – Ivan

回答

2

您不能依賴卸載事件:a)並非每個瀏覽器都會處理它們; b)不同的瀏覽器對可以在其中完成的操作有不同的限制。您可以使用WebSocket並監視連接從服務器關閉的時間。對於不支持Websocket的客戶端,您可以每5秒對腳本使用AJAX進行回傳。當您在過去5秒內沒有收到請求時,已經「註銷」。

+1

這也被稱爲*心跳*。 – hakre

+1

@hakre鑑於OP的原始問題的措辭,我不認爲他/她熟悉「心跳」;) –

+1

;)這是沒有批評,只是一些補充;) – hakre

相關問題