2011-05-18 88 views
0

一旦會話過期,我想從應用程序中的任何位置將用戶重定向到「登錄頁面」。如何使用JavaScript檢查會話是否過期

我該如何使用JavaScript來實現?

+1

爲什麼你必須使用JavaScript?如果你可以檢查它,你會怎麼做?使用setInterval? – wong2 2011-05-18 09:20:26

+0

是的,如果會話處於非活動狀態,我希望用戶重定向到登錄頁面 – 2011-05-18 09:26:43

回答

2

的典型實現會話需要兩兩件事:

  1. 在瀏覽器中的cookie
  2. 與存儲在cookie中

這些數量相關聯的會話的服務器端記錄Cookie通常設置爲會話cookie。它們在瀏覽器關閉時過期。因此,您不必擔心測試它們以實現此目的。

要了解會話在服務器上是否仍然有效,您需要(定期)向服務器發出HTTP請求(您可以使用Ajax執行此操作),並讓服務器響應關於會話。

一個簡單的解決方案是返回true或false,然後重定向(通過設置location.href)是否爲false。

更有效的解決方案是返回剩下的時間來爲會話生存,並使用該信息來確定下一次檢查(以及是否爲0時重定向)。 更多

+1

,但通常服務器使用超時來驗證會話,因此無論何時用戶發出請求,超時都會重置爲0.因此,如果您定期請求服務器,會話永遠不會死..你必須改變你的服務器管理會話的方式..或者我錯了= D – pleasedontbelong 2011-05-18 09:31:14

+0

你能告訴我如何定期檢查會話是否活着。知道你告訴我的邏輯,我已經用settime實現了,但在此之前,我需要檢查會話是否在我的瀏覽器中存在。 – 2011-05-18 09:31:52

+0

'setInterval'和您選擇的Ajax庫以及適當的服務器端邏輯會話管理。 – Quentin 2011-05-18 09:38:41

0

沒有必要定期檢查會話是否過期,您可以做的最好的事情是您可以檢查事件在前端被觸發時,如提交前/點擊前所示等。 服務器時間是我們需要管理以提高應用性能的關鍵資源。

相關問題