当我使用 JQuery 一起发送两个 ajax 请求时.. 响应一起
$.ajax
({
type: "POST",
url: 'ajax.php'
});
$.ajax
({
type: "POST",
url: 'ajax2.php'
});
Run Code Online (Sandbox Code Playgroud)
ajax.php , ajax2.php 是两个文件,包含一个虚拟的 for 循环大约需要 5 秒。
POST localhost/ajax.php 200 OK 4.77s
POST localhost/ajax.php 200 OK 4.37s
这里每个请求大约需要 5 秒才能执行.....
当我在 symfony 做同样的例子时,我得到了不同的结果
$.ajax
({
type: "POST",
url: 'module/action1'
});
$.ajax
({
type: "POST",
url: 'module/action2'
});
Run Code Online (Sandbox Code Playgroud)
action1 , action2 是两个动作,只包含一个虚拟的 for 循环大约需要 5 秒。
POST localhost/web/frontend_dev.php/module/action1 200 OK 4.47s
POST localhost/web/frontend_dev.php/module/action2 200 OK 9.87s
请注意,在第一个请求完成后执行了第二个请求,我不知道为什么会这样
当一个请求进来并尝试启动一个会话时,php 将检查当时是否正在使用同一个会话。如果是,新请求必须等到另一个请求完成,或者释放会话锁。
你的情况如下:
默认情况下,symfony 在每个请求开始时启动会话。
在纯 PHP 中,您可以使用session_write_close(). Symfony 有包装会话功能的 sfUser 类,你需要调用它的shutdown()方法。
请注意,如果您稍后在该请求中修改任何会话数据,它将不会被保存。
更详细的解释,请阅读PHP Session write locks and how to deal with it in symfony。
| 归档时间: |
|
| 查看次数: |
2540 次 |
| 最近记录: |