0

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

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

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

4

2 回答 2

2

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

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

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

于 2010-11-25T23:18:44.830 回答
1

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

于 2010-11-25T23:12:50.483 回答