PHP页面进程分离

PHP页面进程分离,php,http,caching,process,Php,Http,Caching,Process,如果某个php页面正在运行一些长的进程,例如sleep或while循环,这会使它需要一段时间才能加载,那么它会影响同一页面上的其他进程吗?, 我注意到,当我尝试用不同的短流程打开同一页面时,加载也需要很长时间,而且很明显,在第一个页面(长流程)加载之前,它不会加载 这是真的还是我的代码有问题,以及如何防止它? 我认为这与缓存有关,但我不想在得到提示或答案之前搞砸。PHP在单个进程中运行,每次访问页面时,它都会启动进程、进程并完成。 每个进程不会影响其他进程。PHP在单个进程中运行,每次访问页面时

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

这是真的还是我的代码有问题,以及如何防止它?

我认为这与缓存有关,但我不想在得到提示或答案之前搞砸。PHP在单个进程中运行,每次访问页面时,它都会启动进程、进程并完成。
每个进程不会影响其他进程。

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

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

最常见的原因是:

  • 您的脚本使用PHP会话“原样”,它使用文件锁定。文件锁定机制确保一次只有一个脚本可以编辑每个用户的会话数据,但这确实意味着,如果来自同一用户的两个请求同时发生,则如果第二个脚本都依赖于会话,则在第一个脚本完成之前,第二个脚本不会启动(不过,两个不同的用户拥有不同的会话文件,因此不会发生冲突)
  • 浏览器会自动检测到页面占用了很长时间,并故意在后台延迟后续请求——我相信这是谷歌Chrome默认的做法
但是,这两种情况都是相对安全的,因为只有当同一用户试图同时加载多个页面时才会出现延迟,这是不常见的-不同的用户不会看到延迟,无论实际加载页面需要多长时间

更多关于这个话题

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

最常见的原因是:

  • 您的脚本使用PHP会话“原样”,即使用文件锁定。文件锁定机制确保一次只有一个脚本可以编辑每个用户的会话数据,但这确实意味着,如果来自同一用户的两个请求同时发生,则如果它们都依赖于会话,则第二个脚本将不会在第一个脚本完成之前启动(不过,两个不同的用户拥有不同的会话文件,因此不会发生冲突)
  • 浏览器会自动检测到页面占用了很长时间,并故意在后台延迟后续请求——我相信这是谷歌Chrome默认的做法
但是,这两种情况都是相对安全的,因为只有当同一用户试图同时加载多个页面时才会出现延迟,这是不常见的-不同的用户不会看到延迟,无论实际加载页面需要多长时间


关于这个主题的更多信息。

是的,他们正在使用会话,是否可以通过编辑php.ini或其他方法来防止这种情况发生?应用程序中的每个用户是否应该同时加载多个页面?因为通常这是不必要的。嘿,真的感谢你关于会话的说明,我用这个解决了它,因为我不需要编写任何东西,只是读,+++1Cool,但只是记录,我想指出的是,两个单独的用户通常不会看到问题。例如,如果用户A在A.php之前加载A.php,然后加载b.php,他将经历延迟(就像您所做的那样),但如果用户A加载A.php,而用户B在用户A使用A.php之前加载B.php,则B.php将为用户B加载(不同的会话文件)。因为通常情况下发生的是前者,而不是后者。在现实生活中,这种阻塞很少是一个问题。请记住,我认为了解它的工作原理很重要。是的,他们正在使用会话,是否可以通过编辑php.ini或其他方法来防止这种情况?应用程序中的每个用户是否都应该加载多个页面因为通常情况下这是不必要的。嘿,真的很感谢你关于会话的说明,我用这个解决了它,因为我不需要写任何东西,只要读,++1工具,但只是记录,我想说的是,两个单独的用户通常不会看到问题。例如,如果用户A加载了A.php和然后,在a.php完成之前,他将经历延迟(就像您所做的那样),但是如果用户a加载a.php,并且用户b在用户a使用a.php完成之前加载b.php,那么b.php将为用户b加载(不同的会话文件).因为通常情况下发生的是前者,而不是后者。在现实生活中,这种阻塞很少是一个问题。请记住,我认为了解它是如何工作的很重要。