ajax 的工作原理


How ajax works?

我有2页。一个是形式.php和ajaxprocessing.php

当用户单击form.php上的提交按钮时,它将使用ajax调用ajaxprocessing.php。这个 ajaxprocessing.php 有一个循环,比如说 50,000 次来执行数据库插入查询或某些函数。

我的问题是,即使用户单击表单中的提交按钮.php并关闭浏览器或关闭PC,ajaxprocessing.php仍会继续在服务器中执行吗?

它在幕后是如何工作的?

默认情况下,如果客户端断开连接,PHP 执行将终止。因此,如果您的 ajax 调用超时或断开连接,那么 PHP 将停止运行。可以通过打开配置设置 ignore_user_abort 来更改此行为。

来自 php.ini 中的注释:

;如果启用,即使用户中止
,也允许请求完成 ;请求。如果执行长请求,请考虑启用它,这最终可能会
;被用户中断或浏览器超时。PHP 的默认行为
;是禁用此功能。
;http://php.net/ignore-user-abort

测试脚本是否继续运行的一种方法是在 PHP 脚本的底部插入这样的东西。

mail('your@email.com', 'Script done', 'The script is now done');

这将在脚本完成后向您发送一封电子邮件 - 如果 sendmail 安装在原因服务器上。这样,您将知道关闭浏览器后脚本是否继续运行。