簡體   English   中英

關閉瀏覽器上的Session_End代碼

[英]Session_End code on browser close

我有一個方法需要在Session_end上運行。 當用戶關閉瀏覽器時,有什么方法可以確保代碼運行? 這可能是一個雙重任務。 我看到一個響應調用ajax卸載或其他東西,但我不希望每次用戶導航離開頁面時觸發,就在他們關閉瀏覽器時。

謝謝,〜ck

簡單回答:您無法控制用戶的瀏覽器。 您提到的AJAX解決方案是您可以實現的最接近的解決方案(沒有插件/自定義客戶端。)想象一下,每次打開和關閉瀏覽器窗口時,某些網站都可以跟蹤。 你認為這不是隱私問題嗎?

真相在於HTTP的無狀態特性。 一旦完成將響應發送到客戶端,Web服務器就不在了。 之后,您可以依賴的是客戶端腳本(僅在客戶端需要時執行;並且可以輕松選擇不運行腳本。)

Session_end不可靠。 無論你做什么。

Session_end僅在使用進程內會話時觸發。 如果您使用的是會話狀態服務器或SQL會話,則不會觸發session_end。

在進程會話中使用時,session_end僅在會話中存儲了某些內容時才會觸發。 如果您不使用會話,session_end將永遠不會觸發。

如果您正在使用會話並且用戶關閉瀏覽器,則會在用戶會話超時時觸發session_end。 雖然它將具有與原始會話相同的一些設置,但此事件不會綁定到瀏覽器,因為它是工作進程檢測會話超時並觸發session_end進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM