2017-09-13 59 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