2012-03-13 60 views
1

我正在用php做會話超時。我通過ajax調用php 。在X秒不活動之後,如果用戶 發送一個請求,它將被重定向到登錄頁面,因爲會話已經過期。在php中自動會話超時

如何將會話超時消息自動發送回瀏覽器 而不是等待請求觸發器?

像,我應該有一個在後臺運行的線程來檢查總是時間 ?你有想法傢伙嗎?

非常感謝。

回答

2

通過ajax從服務器向瀏覽器發送請求稱爲長輪詢或「彗星」。這是一種成熟的技術,但現在沒有陷阱。

首先,每個用戶都需要保持連接狀態。這是一個很大的開銷,所以它應該用像NodeJS這樣的東西來完成。即便如此,長期民意調查需要每20秒左右重新設置一次,這會導致代碼不穩定。較新的瀏覽器引入了websockets,它可以改善事情,但需要一個具有回退機制的框架。問題是它是否值得你的應用程序。

我會在你的情況下做的是在JavaScript中實現相同的超時機制。這樣,當會話在JavaScript中超時時,用戶會收到一條好消息,並且由於某種原因,服務器強制超時以防用戶繞過瀏覽器。

+1

我同意,這絕對是正確的方向。您可以使用JavaScript的setTimeout,並使其遵循與您在服務器端進行的操作類似的邏輯。 – mrdc 2012-03-13 02:34:30