首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果用户在AJAX请求结束之前退出浏览器或更改页面,会发生什么情况

如果用户在AJAX请求结束之前退出浏览器或更改页面,会发生什么情况
EN

Stack Overflow用户
提问于 2012-01-19 04:08:20
回答 8查看 8K关注 0票数 22

我正在通过ajax调用php脚本来做一些数据库维护。如果用户关闭页面、返回或单击链接,php脚本会被完全执行吗?有办法做到这一点吗?

也许如果php脚本调用exec()方法或类似的方法,这反过来会通过控制台调用脚本:

代码语言:javascript
复制
$ php /var/www/httpdocs/maintenance.php
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-01-19 04:10:17

只要用户代理(浏览器等)已经完全发送了请求,服务器就拥有了它需要的所有东西,并将完成请求并尝试发回响应。

事实上,这种"pinging“行为通常用于”心跳“-like进程,这些进程使服务保持温暖或执行定期维护。

票数 13
EN

Stack Overflow用户

发布于 2012-01-19 04:10:27

这是一种竞争条件。PHP会在某个时刻(通常在尝试输出时)检测到Apache当着它的面大喊大叫,说远程用户关闭了连接。在这一点上,您是否完成了所有想要做的事情,这取决于代码的结构。

如果希望确保在脚本自动关闭之前完成所有操作,请使用ignore_user_abort(TRUE),它会在连接断开后保持运行。它仍然受到用户max_execution_time限制和诸如此类的限制,但它不会因为您断开连接而关闭。

票数 17
EN

Stack Overflow用户

发布于 2012-01-19 04:10:23

一旦web请求到达您的服务器,用户是否关闭浏览器或离开都无关紧要。您的服务器仍会响应,但没有人会监听响应。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8916690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档