2010-08-20 30 views
6

我的理解是,當用戶關閉瀏覽器時會話變量被清除。無論如何,當用戶在瀏覽器中關閉標籤時清除會話變量?清除選項卡上的會話值關閉

我問的原因是,如果用戶在網站上並關閉了選項卡而不是瀏覽器,並且用戶在同一瀏覽器會話的單獨選項卡上返回到該網站,我需要區分兩次訪問。

回答

2

會話變量是服務器端,標籤關閉是客戶端操作,所以你必須以某種方式向服務器發送一個信號來清除這些會話變量。

對我來說,最明顯的方法是使用瀏覽器的onbeforeunload方法,並將某些東西發送到服務器以清除會話。

雖然這是危險的領域。您確定不想讓用戶同時打開並使用您網站的多個標籤嗎?因爲,如果我的網站在兩個標籤中打開,此技巧將清除一個標籤關閉時的會話,使其他標籤無效(不是無用的,只是地毯可能已從此頁面下拉出來,現在該會話離開了)。

0

檢查以下鏈接以獲得最佳答案: Why Doesn't Closing A Tab Delete A Session Cookie?

你可以做的是在URL的末尾附加一些隨機文本並存儲起來作爲參考,如果用戶來自新標籤並且沒有附加隨機文本,則可以確定來自不同標籤的用戶。

相關問題