即使两个脚本并行加载,第二个脚本也会等待。为什么?

时间:2014-12-18 21:17:36

标签: php httprequest

有人可以向我解释为什么加载test.php的时间?q =两个2秒,即使两个"图像"并行加载?为什么睡在test.php?q = test.php上的一个效果?q = 2?

证明他们正在同时加载,并且需要两倍的时间来完成第二次请求:

parallel request

代码:

<?php
if (isset($_GET['q'])) sleep(1);
else{
?>
<img src="test.php?q=one">
<img src="test.php?q=two">
<?php
}

2 个答案:

答案 0 :(得分:0)

也许你有每个IP的限制连接

<IfModule mod_limitipconn.c>
     <Location /your-download-directory>
          MaxConnPerIP 1
     </Location>
</IfModule>

答案 1 :(得分:-2)

也可能是因为这个脚本位于名为test.php的文件中 - 自我调用?如果是这样,在第一次通话时,q未设置,在第二个通话中,这就是为什么你会延迟1秒。

第一次调用(页面加载本身)没有设置q并执行else逻辑,第二次调用q=one并执行if逻辑(应该没有图像输出)并且发生一秒的延迟,第三次调用伴随q=two,再次执行if逻辑,没有图像输出并且发生一个额外秒的延迟。 / p>