PHP脚本的多个实例不会从同一URL在同一浏览器中同时加载

时间:2015-11-07 00:46:48

标签: php apache firefox chromium

我正在尝试同时运行两个php脚本实例。我有一个脚本'test.php':

<p><?php echo time(); ?> Sleeping...</p>
<?php sleep(5); ?>
<p><?php echo time(); ?> done</p>

如果我同时在两个浏览器标签页中加载页面,我会得到:

  

1446855680睡觉......

     

1446855685完成

和此:

  

1446855686睡觉......

     

1446855691完成

一个实例阻塞,直到另一个实例加载。这种情况发生在Firefox和Chromium上。

如果我制作第二个相同的脚本'test2.php',或者将两个网址重写到同一个脚本中,并将两个页面加载到不同的标签中,我就明白了:

  

1446855862睡觉......

     

1446855867完成

和此:

  

1446855863睡觉......

     

1446855868完成

两个实例同时加载。所以它是被阻止的相同URL。

如何获得具有相同URL的两个脚本实例同时加载/运行?

1 个答案:

答案 0 :(得分:0)

正如VolkerK指出的那样,您的测试确认Firefox / Chrome会按顺序执行完全相同的 URL请求。但实际上这不是问题,因为用户通常不会加载相同的页面两次,而对于向Ajax请求提供数据的脚本,URL会有所不同,因为附加了不同的参数。

如果您想绕过此机制,您可以将随机参数(在不同的浏览器标签中必须不同)附加到网址,即url.to/your/script?urlID=4821de7e524cf762deab6ed731343466。随机参数使浏览器看到两个不同的URL,从而并行执行加载。