脚本宝典收集整理的这篇文章主要介绍了PHP:一次只能执行特定脚本的单个实例吗?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP echo "<htML><head><tITle>title</title></head><body>"; echo "<p>PRe-sleep: " . date("H:i:s") . "</p>"; sleep(10); echo "<p>Post-sleep: " . date("H:i:s") . "</p>"; echo "</body></html>"; ?>
我实际上在两个不同的页面中有完全相同的代码(比如说“blah1.PHP”和“blah2.PHP”).如果我使用两个不同的浏览器同时打击这两个不同的页面(本质上),这两个页面似乎同时运行(基本上):
但是,如果我改为使用两种不同的浏览器来打击
同样的脚本副本,就好像第二个实例在第一个完成之前甚至没有开始执行:
因此,似乎PHP – 或者至少我的特定PHP以其当前配置的方式配置 – 将排队对任何特定脚本的请求,尽管能够同时为单独的脚本提供请求?我误会了吗?
这是预期的吗?这是一般事吗?或者它可能与sleep()函数或实际运行PHP脚本的特定服务器(在我的情况下是apache),操作系统或类似的东西有关?
我是否可以依赖此行为(对特定页面的请求排队并且从不同时执行)?另一方面,我可以阻止这种行为吗?
提前致谢.
更新:我现在认为这个问题与PHP,Apache或服务器端的任何事情无关.
我突然意识到当我说“两个不同的浏览器”时,实际上这是不准确的:我实际上已经从两个不同的Firefox窗口(在同一台计算机上)发出了请求.所以,我尝试使用一个Firefox和一个IE,并且两个都在服务器端同时运行.
然后我又尝试了两个不同的Firefox浏览器,并观看了一个网络嗅探器.在第一个窗口的响应完成之前,第二个窗口甚至没有发送GET请求.
因此,似乎这种行为是在Firefox上:至少在某些情况下,如果您尝试从Firefox发出两个请求到同一个URL,Firefox会将它们排队,而不是同时处理它们.
以上是脚本宝典为你收集整理的PHP:一次只能执行特定脚本的单个实例吗?全部内容,希望文章能够帮你解决PHP:一次只能执行特定脚本的单个实例吗?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。