0

If some php page is running some long process such as sleep or while loop that makes it take a while till it loads, does it affect on other processes from the same page ?,
I noticed when i try to open the same page with different short process, it also takes so long to load and to be clear it doesn't load before the first one (long process) does,

is it true or something's wrong with my code and how to prevent it ?
i think it has something to do with cache, i don't wanna mess up though before getting a tip or an answer

4

2 回答 2

2

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

于 2012-07-10T02:14:43.803 回答
1

我注意到当我尝试使用不同的短进程打开同一页面时,[...] 它不会在第一个(长进程)之前加载

最常见的原因:

  • 您的脚本“按原样”使用 PHP 会话,它使用文件锁定。文件锁定机制确保一次只有一个脚本可以编辑每个用户的会话数据,但这确实意味着如果来自同一用户的两个请求同时发生,则第二个脚本不会在第一个脚本完成之前启动,如果它们都依赖在会话上(虽然两个不同的用户有不同的会话文件,所以他们不能冲突)
  • 浏览器会自动检测到页面花费了很长时间,并在后台故意延迟后续请求——我相信这是谷歌浏览器默认做的事情。

然而,这两种情况都相对安全,因为只有在同一用户尝试同时加载多个页面时才会出现延迟,这并不常见——无论实际页面加载多长时间,不同的用户都不会看到延迟。

更多关于这个优秀的 SO answer的主题。

于 2012-07-10T02:35:57.447 回答