在退出时停止执行脚本

时间:2013-01-06 22:38:05

标签: php

在用户操作上,我通过AJAX调用运行后端系统脚本,该调用在完成之前不会输出。问题是用户可以通过启动脚本然后离开页面轻松地浪费资源。目标是在退出时摆脱一段时间。

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

所以我的问题是,当你离开页面时,我怎么能摆脱那个循环呢?

我唯一的猜测是做一个JS onunload AJAX调用来改变缓存文件,但由于显而易见的原因,这是一个很差且非常不可靠的方法。感谢

// //编辑

所以我给了connection_aborted一个ignore_user_abort一个镜头。这是代码的一个非常淡化的版本。

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);
    }
}

因此,即使在我离开页面后,文件仍然会从文件夹中删除。我的目标是退出该循环,并在离开页面时停止所有取消链接。

2 个答案:

答案 0 :(得分:0)

您可以查看connection_aborted()

答案 1 :(得分:0)

  

在用户操作上,我通过AJAX运行后端系统脚本   在完成之前不会输出的呼叫。问题是,a   用户可以通过启动脚本然后离开来轻松浪费资源   这页纸。目标是在退出时摆脱一段时间。

你应该看看:

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