我有一个页面,用户可以启动后台进程。如果用户刷新页面或关闭标签或浏览器,我想停止此过程。试过connection_abort()
,但没有运气,剧本刚刚开始运行。 任何想法?停止一个PHP后台进程
2
A
回答
0
0
如果您对用户的唯一标识符,这样就可以追平或进程ID一起存储,以下逻辑可以工作:
- 用户请求页面
- 用户被赋予一个唯一的id
- 后台进程启动并且它的id与用户标识一起被登录到数据库
- 进程不断检查数据库 - 以选定的频率 - 检查数据库中的记录,如果它不存在或者不像预期的那样,该过程自行停止。
- 然后,你必须为用户无论前端既可以:
- 触发脚本(即stop_process.php用户= ID?)通过AJAX时,它需要 - 即当页面导航离开。由于onbeforeunload阻止或停止某些浏览器中的Ajax请求,因此此方法可能不可靠。
- 有一个ajax轮询脚本,不断更新带有时间戳的数据库中的流程记录,如果这个戳记过期 - 意味着用户已经导航或停止了js - 那么过程停止。
以上是一个相当复杂的解决方案(也可能气质,因为它依赖于JavaScript)所以也许应该只有在真正需要或认为如果目标观众可以被锁定。
作为非js解决方案,您可以依赖轮询方法并设置元刷新帧。然而,这可能会让老版本的Internet Explorer用户疯狂地持续“点击”。更不用说这个解决方案相当不雅。
相关问题
- 1. 钛 - 无法停止iOs后台进程
- 2. Unix的后台进程异常停止
- 3. 如何最好的告诉一个后台PHP程序停止
- 4. 创建一个后台PHP进程
- 5. PHP后台进程
- 6. PHP后台进程
- 7. PHP后台进程
- 8. NSTimer在应用程序进入后台后不会停止
- 9. PHP中的后台进程
- 10. 后台进程终止后的通知
- 11. 如何停止黑莓后台线程
- 12. 如何杀死/停止后台线程?
- 13. 停止后台线程的iOS
- 14. 停止后台线程的CFRunLoop
- 15. 当后台应用程序停止BackgroundService
- 16. 在后台停止java程序
- 17. iPhone:停止在后台运行程序
- 18. 停止例程服务开始将现有后台进程带到前台
- 19. 如何中断或停止后台进程?
- 20. 如何停止android中的所有后台进程?
- 21. 在后台启动进程的停止输出
- 22. Linux进程在后台 - “停止”在作业中?
- 23. 如果设备启动,我的应用后台进程停止
- 24. GPS在应用程序进入后台状态时不停止
- 25. 主脚本停止后台进程无效的参数错误
- 26. 如何立即停止后台运行进程?
- 27. java进程停止整个进程树
- 28. 后台进程在其父进程终止时被终止?
- 29. 一台客户机停止后,Unix ipc服务器停止
- 30. 停止后台服务当应用程序转到后台
'websockets'可以做到这一点 – Baba