如果用戶從我的站點移動到另一個站點或者關閉瀏覽器,如何關閉Django中的會話。如果用戶移動另一個站點或關閉瀏覽器後Django關閉會話
0
A
回答
1
從這個問題和評論,似乎你想「關閉」會議,當用戶退出您的網站沒有任何援助JS。答案取決於你如何定義「關閉」。
問題的根源在於HTTP是無狀態的。進入服務器的每個請求都是完全獨立的請求,與任何其他請求沒有任何關係,這意味着不能有任何狀態。由於狀態非常有用,我們通過使用會話破解HTTP來添加狀態。這個想法是,瀏覽器發送一些標識符到服務器上存儲的某個狀態,這允許服務器檢索該狀態,從而爲請求提供一些上下文。關鍵在於瀏覽器正在發送該數據。換句話說,如果瀏覽器在某些時候會停止發送請求(例如用戶關閉標籤),服務器將永遠不會知道這一點。因此,如果將「關閉」會話定義爲從服務器刪除會話,那麼沒有JS的幫助就不可能實現。
但是,如果您嘗試實現的所有操作都是在用戶退出網站時將其註銷,則可以使用SESSION_EXPIRE_AT_BROWSER_CLOSE
設置在Django中完成部分操作。 Here是另外的文檔。這裏的想法是,當Django將會話cookie發送回瀏覽器時,它會指示會話cookie在瀏覽器關閉時應該過期。在這種情況下,當瀏覽器關閉時,瀏覽器本身會使會話無效,因此用戶將被迫在下次訪問時創建新會話。這是部分解決方案,因爲會話仍將存儲在服務器上,我相信只有當瀏覽器完全關閉時(我不認爲關閉標籤有效但不確定)。爲了緩解服務器累積舊會話的問題,Django提供了一個管理命令clearsessions
,您應該定期運行該命令。
相關問題
- 1. 如何在瀏覽器中關閉一個會話關閉Django
- 2. 關閉瀏覽器後保持會話
- 3. 關閉瀏覽器或標籤時關閉Asp.Net會話
- 4. 會話cookie不會在瀏覽器上關閉關閉
- 5. GWT:如何在關閉瀏覽器時關閉會話
- 6. 用戶在joomla關閉瀏覽器後記得會話
- 7. .NET會話 - 持續會話,即使用戶關閉瀏覽器
- 8. Rails 3:用戶關閉瀏覽器或頁面後終止用戶會話?
- 9. 關閉瀏覽器會話丟失
- 10. 關閉瀏覽器清除PHP會話
- 11. 刪除用戶會話從MySQL表,如果他們點擊關閉瀏覽器
- 12. javascript-ajax-關閉JAVA中關閉瀏覽器的會話
- 13. 在瀏覽器上關閉會話關閉Codeigniter 3
- 14. Spring Roo - 在瀏覽器關閉時關閉會話
- 15. Laravel關閉瀏覽器關閉會話不在Chrome中工作
- 16. 關閉瀏覽器/選項卡上的會話關閉
- 17. 在瀏覽器上關閉會話關閉
- 18. 在瀏覽器中關閉會話值關閉
- 19. 如何在瀏覽器關閉時關閉vaadin會話但保持http會話?
- 20. ASP.net會話如果他關閉瀏覽器會破壞
- 21. 銷燬或取消會話時,用戶關閉瀏覽器不點擊註銷
- 22. 在瀏覽器關閉asp.net的放棄會話。關閉會話cookie
- 23. 如何在瀏覽器關閉後保留會話?
- 24. 關閉瀏覽器
- 25. 用戶登錄會話以瀏覽器關閉結束
- 26. 刷新/瀏覽器關閉後的角度重用會話
- 27. 一段時間後關閉瀏覽器
- 28. 應用內瀏覽器不會關閉
- 29. 銷燬瀏覽器或標籤頁上的會話關閉
- 30. 瀏覽器關閉後驗證/會話cookie刪除
檢查此答案,看看它是否能解決您的問題。 http://stackoverflow.com/a/28755357 –
是否有可能沒有jQuery? –