我正在尝试弄清楚服务器与客户端之间的“对话”是如何进行的。
因此,当服务器生成一个无限循环时,例如echo
ing"hello<br />"
,当客户端停止或点击“后退”时会发生什么?
服务器如何知道循环结束,还是它要在旁边运行无限进程?
是否有任何地方可以阅读相关内容以了解整个过程?
我正在尝试弄清楚服务器与客户端之间的“对话”是如何进行的。
因此,当服务器生成一个无限循环时,例如echo
ing"hello<br />"
,当客户端停止或点击“后退”时会发生什么?
服务器如何知道循环结束,还是它要在旁边运行无限进程?
是否有任何地方可以阅读相关内容以了解整个过程?
php.ini
指令ignore_user_abort
被设置为1
(在服务器端,默认为0
),否则PHP解释器将在当前原子操作完成时中止脚本执行(在您的示例中:echo()
)。ignore_user_abort
显式设置为1
,您仍会遇到PHP的max_execution_time
或apache的TimeOut
(两者在服务器端也可以配置)。ignore_user_abort()
和set_time_limit()
。max_execution_time
,如果时间超过了预设值,它将终止该进程。set_time_limit(0);
(这样PHP解释器就会让它一直运行),那么该脚本可能会一直运行,直到Web服务器在TimeOut
变量设置的时间后将其终止(我认为默认为300秒,并且据我所知,这只是Apache设置)。