我的問題如下:以只讀模式啓動會話
我有一個運行一系列AJAX調用的頁面,例如,
$.ajax({ url: "/user/post1" });
$.ajax({ url: "/user/post2" });
$.ajax({ url: "/user/post3" });
...
$.ajax({ url: "/user/postN" });
(我已經事先確定的ID)
我也得到了:
$.ajax({ url: "/user/modifysessiondata" });
現在的問題是,我需要開始在每個會話和每個請求(以獲得當前用戶)以及「/ user/modifysessiondata」還需要修改會話數據。
但是我發現,如果我只是在一次有可能執行所有的AJAX請求,如果/user/postX
請求之前/user/modifysessiondata
請求開始,之後結束,然後它會保存會話數據,因爲它是當請求被稱爲和因此會覆蓋第二個呼叫設置的會話數據。
我的問題是:
是否有可能標誌會議提出具體要求開始爲「只讀」?我需要爲此創建一個新的定製StartSession
中間件嗎?
我只是在做一件完全荒謬的事情嗎?
注意:爲了澄清我在談論Laravel會議。我正在使用支持redis的會話存儲。
你確定你沒有修改自己的變量?每個請求都應該阻止會話,所以我不會看到一個請求可以保持打開狀態,而另一個請求會同時修改會話。您當然可以打開您的會話,複製數組並立即關閉會話,然後在每個腳本的頂部不需要修改它。 – jeroen
您可以等待下一個ajax的調用,直到當前的ajax請求完成。而在阿賈克斯你可以關閉會話,並與'session_write_close()'(在PHP) – Oliver
保存@jeroen我指的是laravel會話。我不確定在請求終止之前是否可以關閉laravel會話。更新澄清。 – apokryfos