客户端断开连接会发生什么

时间:2014-12-16 15:41:41

标签: php networking

当浏览器向Web服务器发送http请求时。该请求将运行一个PHP脚本,该脚本将调用函数A,B和C.

如果浏览器的连接在PHP执行功能A时丢失,它是否会继续运行脚本并调用功能B和C?

2 个答案:

答案 0 :(得分:1)

使用PHP,这只需在ini文件中控制:

; If enabled, the request will be allowed to complete even if the user aborts
; the request. Consider enabling it if executing long requests, which may end up
; being interrupted by the user or a browser timing out. PHP's default behavior
; is to disable this feature.
; http://php.net/ignore-user-abort
;ignore_user_abort = On

默认情况下,在PHP 5.6.3中,如果您关闭浏览器,行为就是终止脚本。关闭您的标签,至少在Chrome中,不会杀死该脚本。您必须关闭浏览器。

答案 1 :(得分:1)

问题是,传统的HTTP模型不是交互模型 如果用户关闭页面,唯一能让确定确保您的脚本无法运行的方法是:
1.在脚本的开头加入这些行:
<?php ob_implicit_flush(); ob_end_flush(); ...
2.对于您不希望在用户退出后运行的代码:

<?php
 if(!connection_aborted()){
  //your code here
 }

希望这会有所帮助......