确保脚本退出用户中止

时间:2010-11-25 22:54:30

标签: php abort

我写了一个没有时间限制且max_execution_time为0的脚本

  1. 我应该工作到工作结束或用户中止(从浏览器取消)。
    如何确定用户从浏览器中止页面加载时脚本是否被服务器杀死?

  2. 这会立即杀死脚本还是之前调用类的__destructor?

2 个答案:

答案 0 :(得分:2)

假设这是由ajax调用的,你可以为用户离开发送ajax请求的网页添加一个事件处理程序,该请求由一个杀死另一个脚本的脚本处理。

这可以通过让脚本在启动时创建文件来实现。然后,每隔一段时间检查一下该文件是否仍然存在。如果是,它会继续,如果不是它退出。

诀窍是找到文件名。我这样做的方式是为每个页面请求提供唯一的用户ID。并且在url(GET)中使用相同的用户ID调用'worker'脚本和'kill'脚本。

答案 1 :(得分:1)

根据我的理解,当用户中止页面加载时,php无法停止脚本执行。我假设“中止”是指在页面仍在加载时单击停止或关闭浏览器。