Php Jquery Post/AJAX-用代码关闭窗口是否会影响服务器脚本?

Php Jquery Post/AJAX-用代码关闭窗口是否会影响服务器脚本?,php,jquery,Php,Jquery,作为前言,我知道这不是一个很好的问题,很难解释 我有一个PHP脚本,运行需要5-10分钟。我不希望用户必须等待它。如果我使用jquery ajax“触发”脚本,然后用户离开该页面或关闭浏览器(并且不等待稍后的响应(如果有的话),脚本是否仍会完全执行(假设没有错误等) 谢谢 一旦服务器接收到AJAX请求和数据,它就会像往常一样处理它,即使您关闭了页面或窗口。如果在服务器收到AJAX请求之前关闭浏览器窗口,则不会进行处理 此外,如果AJAX请求返回任何类型的数据或显示消息,建议您将窗口保持打开状态,

作为前言,我知道这不是一个很好的问题,很难解释

我有一个PHP脚本,运行需要5-10分钟。我不希望用户必须等待它。如果我使用jquery ajax“触发”脚本,然后用户离开该页面或关闭浏览器(并且不等待稍后的响应(如果有的话),脚本是否仍会完全执行(假设没有错误等)


谢谢

一旦服务器接收到AJAX请求和数据,它就会像往常一样处理它,即使您关闭了页面或窗口。如果在服务器收到AJAX请求之前关闭浏览器窗口,则不会进行处理


此外,如果AJAX请求返回任何类型的数据或显示消息,建议您将窗口保持打开状态,以便有一些“侦听”页面来监听服务器的请求响应

在PHP脚本中,您可以调用
ignore\u user\u abort(true)
函数,该函数将导致脚本运行,而不管用户是否关闭页面。

如果您有权访问以下命令行,您可以使用该命令行:

php /loc/to/file.php
这没有超时,可能比端口80(调用phpfile的浏览器)快

或者通过php调用另一个文件中的主phpfile:


您可能想使用 results.txt的目录和文件本身需要是可写的。 “大于”符号将phpfile的输出写入
result.txt
。如果php将回显
123
,则这将是result.txt的内容



5到10分钟是一段非常长的时间,您可能需要检查代码以获得改进。如果您使用的是数据库,请在u use ALLOCT列上添加INDITE(索引),这样可以节省大量tim

使用,您会没事的。在尝试向客户端发送信息之前,PHP不会检测到用户已中止连接。仅使用echo语句并不能保证发送信息,请参阅。如果关闭窗口,用户(您)将无法获得响应。就是这样。如果我使用上面编写的php exec代码,然后关闭浏览器窗口,会发生什么?为什么这比使用jquery调用脚本要好?@Martijn:很高兴知道。但是这个答案和OP的问题有什么关系呢?简而言之:
在用户关闭浏览器时运行脚本?
文件将在后台运行,因此用户离开时无法停止。最初的问题在评论中得到了回答
<?php
exec("php /loc/to/file.php > /loc/to/result.txt");
?>