栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用户离开页面后,php执行会停止吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用户离开页面后,php执行会停止吗?

这取决于。

从http://us3.php.net/manual/zh/features.connection-
handling.php

当PHP脚本正常运行时,NORMAL状态处于活动状态。如果远程客户端断开连接,则ABORTED状态标志将打开。远程客户端断开连接通常是由用户按下STOP按钮引起的。

您可以决定是否希望客户端断开连接以导致脚本中止。有时,即使没有远程浏览器接收到输出,始终将脚本运行至完整状态也很方便。但是,默认行为是当远程客户端断开连接时脚本将中止。可以通过

ignore_user_abort
php.ini指令以及相应的
php_value ignore_user_abort
Apache httpd.conf指令或通过
ignore_user_abort()
函数来设置此行为 。

这似乎表示您问题的答案是“是的,如果用户离开页面,脚本将终止”。

但是请意识到,根据所使用的后端SAPI(例如

mod_php
),php无法检测到客户端已中止连接,直到尝试向客户端发送信息为止。如果长时间运行的脚本没有发出
flush()
,即使用户已关闭连接,该脚本也可能继续运行。

事情复杂是,即使你 做的
到的问题定期调用

flush()
,其输出缓冲,将导致捕获这些电话,并直到脚本完成反正不会送他们到客户端!

进一步
复杂化的事情是,如果你已经安装了Apache处理程序缓存的响应(例如

mod_gzip
),然后再次PHP将无法检测到连接被关闭,该脚本将继续卡车。

ew



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399721.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号