我遇到一个麻烦,就是我无法使用框架(Symfony)同时请求2个ajax
这是我的代码:
JQuery:
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()
大约需要1s,而doAjax()
大约需要10s,正是我想要的。
但在 symfony 1.4 框架中,doAjax1() 大约需要 11s,而 doAjax() 大约需要 10s,看起来 doAjax()
已完成,稍后调用 doAjax1()
。
有什么安全的解决方案吗?
谢谢。
最佳答案
以下示例是针对 Symfony2 给出的,但问题是相同的,解决方案也是相同的。
这可能与 Symfony 对 Controller 操作操作的 session 锁定有关。这里描述得很好:
- http://blog.alterphp.com/2012/08/how-to-deal-with-asynchronous-request.html
- http://garethmccumskey.blogspot.fr/2009/10/php-session-write-locking-and-how-to.html
诀窍是:如果您在操作期间不需要在 session 中写入,请尽早释放 session 锁定!
这里有 2 个相关问题:
关于php - PHP框架的多个Ajax请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225037/