繁体   English   中英

PHP页面流程分离

[英]PHP page process separation

如果某个php页面正在运行一些较长的进程,例如sleep或while循环,这需要一段时间才能加载,这会影响同一页面上的其他进程吗?
我注意到,当我尝试以不同的短流程打开同一页面时,它还需要花费很长时间才能加载,并且很明显,在第一个(长流程)加载之前,它并没有加载,

这是真的还是我的代码有什么问题以及如何防止它?
我认为这与缓存有关,但是我不想在获得提示或答案之前就搞砸了

PHP在单个过程中运行,每次您访问该页面时,它都会启动该过程,该过程并完成操作。 每个过程都不​​会影响其他过程。

我注意到,当我尝试以不同的短流程打开同一页面时,它不会在第一个(长流程)开始之前加载

最常见的原因:

  • 您的脚本按原样使用PHP会话,该会话使用文件锁定。 文件锁定机制确保一次只能编辑一个脚本,每个用户的会话数据,但这确实意味着如果来自同一用户的两个请求同时发生,则第二个脚本将在第一个脚本完成之前不启动在会话上(尽管两个不同的用户具有不同的会话文件,所以它们不会冲突)
  • 浏览器会自动检测到页面耗时较长,并有意在后台延迟后续请求-我认为这是Google Chrome的默认操作。

但是,这两种情况都是相对安全的,因为只有在同一用户尝试同时加载多个页面的情况下才会出现延迟,这种情况并不常见-不管实际页面加载需要多长时间,不同的用户都不会看到延迟。

这个出色的SO答案中有更多关于该主题的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM