排队等待来自同一浏览器的PHP / Apache的调用?

时间:2011-11-15 04:32:33

标签: php apache

为什么并行处理apache2的2个并发调用?

echo "Start: ".time();
sleep(5);
echo "<br/>End: ".time();

在Chrome中打开2个标签,然后转到脚本。 (同一时间)

TAB 1的结果

Start: 1321331382
End: 1321331387

TAB 2的结果

Start: 1321331387
End: 1321331392

如何防止这种情况发生?


你的问题暗示了正确的答案。

在php.ini中激活了session.auto_start = 1.解决方案是使用以下命令启动脚本:session_write_close();

或session.auto_start = 0;进入php.ini。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

当您使用Chrome并在多个标签中请求相同的资源时,它将等待资源完成下载。原因是如果标题允许,第二个选项卡将从缓存加载,而不是从服务器重新加载。

这与您的服务器配置无关,但更多与您的有缺陷的测试方法有关。从命令行发出一对wget次调用,这可能会按预期工作。

您还可以使用调试代理(例如Fiddler)或数据包嗅探软件(例如Wireshark)来验证是否发生了这种情况。

答案 1 :(得分:0)

你的apache设置是什么?您可以将配置设置为仅运行1台服务器而不是多台服务器。因此,如果以这种方式设置那么就不可能同时运行。