Php 退出时停止脚本中间执行

Php 退出时停止脚本中间执行,php,Php,在一个用户操作上,我通过一个AJAX调用运行一个后端系统脚本,该调用在完成之前不会输出。问题是,用户启动脚本然后离开页面很容易浪费资源。目标是在退出时打破while循环 首先,我让它在启动时向缓存中添加一个文件,并在每次迭代中检查它。这是正确的,因为如果我通过另一个AJAX调用更改文件值,它将退出 所以我的问题是,当你离开页面时,我如何打破这个循环 我唯一的猜测是调用JS-onunload-AJAX来更改缓存文件,但由于明显的原因,这是一种糟糕且高度不可靠的方法。谢谢 //编辑// 所以我给了连

在一个用户操作上,我通过一个AJAX调用运行一个后端系统脚本,该调用在完成之前不会输出。问题是,用户启动脚本然后离开页面很容易浪费资源。目标是在退出时打破while循环

首先,我让它在启动时向缓存中添加一个文件,并在每次迭代中检查它。这是正确的,因为如果我通过另一个AJAX调用更改文件值,它将退出

所以我的问题是,当你离开页面时,我如何打破这个循环

我唯一的猜测是调用JS-onunload-AJAX来更改缓存文件,但由于明显的原因,这是一种糟糕且高度不可靠的方法。谢谢

//编辑//

所以我给了连接一个忽略用户一个中断一个快照。这是一个非常精简的代码版本

ignore_user_abort(true);
set_time_limit(0);

$handle=opendir($dir);
if($handle)
{
    while(false!==($file=readdir($handle))&&!connection_aborted())
    {
       sleep(1);
       unlink($dir."/".$file);
    }
}
因此,即使在我离开页面后,这些文件仍将从文件夹中删除。我的目标是,如果你离开页面,就要跳出这个循环,停止所有的断开链接。

你可以检查

在用户操作上,我通过AJAX运行后端系统脚本 在完成之前不输出的调用。问题是 用户启动脚本然后离开很容易浪费资源 这一页。目标是在退出时打破while循环

您应该查看:


听起来他们可以解决你的问题。

那怎么办:代码会很可爱的。我添加了一些关于我所尝试的连接的代码。\u aborted()goesThanks,我添加了一些关于这些函数的代码。