【问题标题】:If you close your browser, does PHP code keep running? [duplicate]如果关闭浏览器,PHP 代码会继续运行吗? [复制]
【发布时间】:2015-06-01 01:22:10
【问题描述】:

假设您有一个 PHP 脚本(无论出于何种原因)需要几分钟才能运行。如果用户在脚本运行时关闭浏览器,脚本是停止运行,还是执行指令直到脚本结束?

【问题讨论】:

  • 何不试试看?
  • 可能是学术性的,因为服务器可能会在配置的超时(通常为 30 秒)关闭脚本。
  • 拥有一个需要几分钟才能加载的网页可能是个坏主意。您可能希望将其卸载到后台进程,在该进程中浏览器只是将进程排队,然后完全从等式中删除。

标签: php


【解决方案1】:

PHP 是一种服务器端语言。所有处理都在服务器上完成,而不是在客户端。一旦请求被发送到服务器,客户端就会失去对它的控制。

这意味着服务器的超时配置将对这么长的查询生效,但关闭浏览器将不起作用。

如果您在 5 分钟内使用客户端(例如 javascript)向服务器端语言提交了多个请求,那么是的,关闭浏览器实际上会中断该过程并阻止其完成。

如果您想阅读,请阅读有关差异的好书: https://softwareengineering.stackexchange.com/questions/171203/what-are-the-differences-between-server-side-and-client-side-programming

【讨论】:

  • 所以基本上你是说如果客户端有一堆请求,比如 1 到 10,发送 1 到 7 并被闪电击中,8 到 10 不会发生
  • 是的,如果您使用客户端驱动的脚本来执行这些请求,8,9 和 10 将不会通过,但是如果请求全部发送到服务器并且服务器正在处理7/10 并且客户端断电,8,9 和 10 仍将执行,因为服务器已经接收并“排队”了请求。
  • 但是被雷劈了,一直没发,我的意思是答案有点空洞,没有一点了解tcp/ip的OSI模型
  • 所提供的答案并不是对 TCP/IP 及其工作原理的深入分析。它涉及客户端和服务器端请求之间的差异。最初的问题是“PHP 是否继续处理”,简短的回答是肯定的。但是,有一个小的 astrix 扩展了关于将请求传递到服务器的方法的答案。
  • K.正如 op 清楚地表明脚本是服务器端技术的理解。
【解决方案2】:

没有可靠的方法让服务器知道客户端不再关心请求。一般来说,它会一直运行,直到有什么东西停止它。

【讨论】:

    猜你喜欢
    • 2010-12-12
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2012-07-03
    相关资源
    最近更新 更多