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

Multiple instances of PHP script won't load concurrently in the same browser from the same URL

我正在尝试将 php 脚本的两个实例同时发送到 运行。我有一个脚本,'test.php':

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

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

1446855680 Sleeping...

1446855685 done

还有这个:

1446855686 Sleeping...

1446855691 done

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

如果我制作第二个相同的脚本,'test2.php',或者将两个 url 重写到同一个脚本,并在不同的选项卡中加载这两个页面,我得到这个:

1446855862 Sleeping...

1446855867 done

还有这个:

1446855863 Sleeping...

1446855868 done

两个实例同时加载。因此被阻止的 URL 是相同的。

我怎样才能同时获得两个具有相同 URL 到 load/run 的脚本实例?

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

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