2017-09-13 130 views
1

我在我的網站上使用PHP Symfony 3,當我嘗試做出長ajax請求時,它阻止我的網站從我的瀏覽器操作。這意味着我甚至無法從其他瀏覽器選項卡檢索頁面,直到請求完成。在另一臺用純php編寫的服務器上,沒有這樣的問題(當ajax調用未決時,我可以從我的站點打開另一個頁面)。我認爲這將是一個mod_rewrite問題,但不知道如何檢查它。有什麼想法如何解決它?謝謝。php symfony 3 ajax調用不是異步

UPD_1我碰到過THIS問題,現在如果問題是會話文件鎖定,它如何在Symfony 3環境中修復?謝謝

+0

看看[問]和[MCVE]並相應地編輯您的問題 – pvg

回答

2

在你的控制器中關閉你的會話。

public function yourAjaxAction() { 
    $this->get("session")->save(); 
    ... 
} 

這將使您的會話只讀,您將能夠做另一個請求。只對那些不需要更新會話的請求執行此操作。

+0

這是什麼意思更新您的會話?會話什麼時候更新?它會使會話在另一個Ajax調用(對不同的Ajax操作)上是可寫的,還是我需要使它明確可寫? – Jack

+1

會話將在其他呼叫中可寫,但不會在調用session-> save之後已經存在的會話中寫入。如果您需要在會話上做某些事情,請在該電話會議之前完成。您在會話中添加,刪除或修改數據時更新會話。示例:使用Flash bag消息控制器時,請使用會話服務修改會話,或在進行登錄,註銷和模擬用戶時間接修改會話。會話有很多用途,我只是給你一個簡短的清單。 – albert