1

我遇到了一个麻烦,那就是我无法使用框架(Symfony)同时请求 2 个 ajax

这是我的代码:

查询:

function doAjax1()
{
    $.ajax({
       url:  "server1.php",
       type: "POST",
       data: {
           id: 1,
       },
       success: function(){

       },
    });
}

function doAjax()
{
    $.ajax({
       url:  "server.php",
       type: "POST",
       data: {
           id: 1,
       },
       success: function(){

       },
    });
}

PHP服务器:

sleep(10);
echo "Done 10s";

PHP服务器1:

sleep(1);
echo "Done 1s";

首先,我打电话doAjax(),第二,doAjax1()

没有任何框架,doAjax1()大约需要1sdoAjax()大约10s,这正是我想要的。

但是使用 symfony 1.4 框架, doAjax1() 大约需要11s, doAjax() 大约需要10s,看起来doAjax()已经完成了,doAjax1()稍后调用。

对我来说有什么安全的解决方案吗?

谢谢你。

4

3 回答 3

3

以下是 Symfony2 的示例,但问题是相同的,解决方案也是如此。

这可能与 Symfony 在控制器操作上操作的会话锁有关。它在这里很好地描述了:

诀窍是:如果您在操作期间不需要在会话中写入,请尽早释放会话锁定

这是2个相关问题:

于 2013-08-14T07:25:56.837 回答
1

我建议您使用jQuery.when()来控制一个接一个的 ajax 调用,但不要认为它会解决您的 simphony 性能问题,只是一个建议。

于 2013-08-14T06:58:06.450 回答
-1

我想原因是您的服务器配置。看起来您的 PHP 不能同时执行超过 1 个请求。我的建议是配置 PHP 工作者。

于 2013-08-14T07:06:19.010 回答