在我的網站上,當用戶登錄時,每20秒約有一個AJAX請求,所請求的PHP正在使用sesssion(從session_start開始)。Ajax請求不更新會話?
我認爲打開網站+「無限」的ajax請求應該保持登錄的用戶登錄。
但是,我收到了我的一位用戶的迴應,他在很長一段時間後被註銷 - 這怎麼可能?請求的PHP不是分別請求PHP更新會話嗎?
什麼可能導致這些登錄?
在此先感謝。
在我的網站上,當用戶登錄時,每20秒約有一個AJAX請求,所請求的PHP正在使用sesssion(從session_start開始)。Ajax請求不更新會話?
我認爲打開網站+「無限」的ajax請求應該保持登錄的用戶登錄。
但是,我收到了我的一位用戶的迴應,他在很長一段時間後被註銷 - 這怎麼可能?請求的PHP不是分別請求PHP更新會話嗎?
什麼可能導致這些登錄?
在此先感謝。
嘗試把這樣的事情在你的頭
<?php
ini_set('session.gc_maxlifetime', 60 * 60); //ini_set('session.gc_maxlifetime', Mulpitplyer*Seconds);
session_start();
?>
會話還可以丟棄如果用戶有一種「不穩定的」網絡連接如
所以你認爲這是垃圾收集器造成的?如果是這樣,24 * 60 * 60(至少需要1天)是我的設置?當我沒有訪問PHP.ini時,我在哪裏設置?順便說一句:如果有更多的用戶,這會如何影響性能? –
如果你沒有訪問你的php.ini,那麼在php代碼中設置它,就像我上面所做的那樣,只要將它改爲ini_set('session.gc_maxlifetime',24 * 60 * 60);儘管在我的經驗中,它是一個不穩定的互聯網連接 – Pwner
有沒有修復與戰場不穩定的in.conn? –
據this post,這可能是因爲瀏覽器的緩存AJAX請求可以通過在您的請求之前包含$.ajaxSetup({ cache: false })
呼叫來解決。
不錯的提示,但我不認爲這是造成我的問題。不管怎麼說,還是要謝謝你 –
爲什麼不只是增加你的會話超時? – Steve
在我看來,這似乎是單個最終用戶問題。請重現並分享此問題。 – blue
它可能是一個JavaScript錯誤,停止Ajax請求,因此不續約會話,使其過期?這取決於你的網站的環境。我想你應該提供進一步的信息。關於。是否還有更多請求/操作正在進行? – Thomas