我写了一个没有时间限制且max_execution_time为0的脚本
我应该工作到工作结束或用户中止(从浏览器取消)。
如何确定用户从浏览器中止页面加载时脚本是否被服务器杀死?
这会立即杀死脚本还是之前调用类的__destructor?
答案 0 :(得分:2)
假设这是由ajax调用的,你可以为用户离开发送ajax请求的网页添加一个事件处理程序,该请求由一个杀死另一个脚本的脚本处理。
这可以通过让脚本在启动时创建文件来实现。然后,每隔一段时间检查一下该文件是否仍然存在。如果是,它会继续,如果不是它退出。
诀窍是找到文件名。我这样做的方式是为每个页面请求提供唯一的用户ID。并且在url(GET)中使用相同的用户ID调用'worker'脚本和'kill'脚本。
答案 1 :(得分:1)
根据我的理解,当用户中止页面加载时,php无法停止脚本执行。我假设“中止”是指在页面仍在加载时单击停止或关闭浏览器。