【发布时间】:2011-09-17 12:03:08
【问题描述】:
我正在努力寻找解决用户访问 page1.php 并且此页面包含另一个 page2.php 的问题的解决方案,这需要大量时间(约 5 分钟)才能完成所有计算但计算结果不需要向用户显示。所以,让用户等待完成是不值得的。
我正在寻找一个解决方案,用户应该访问 page1.php 并在一些必要的检查列表之后它应该向用户显示他的请求处理已经开始的消息。即使用户应该关闭窗口,后端 page2.php 也应该完成所有工作。
【问题讨论】:
我正在努力寻找解决用户访问 page1.php 并且此页面包含另一个 page2.php 的问题的解决方案,这需要大量时间(约 5 分钟)才能完成所有计算但计算结果不需要向用户显示。所以,让用户等待完成是不值得的。
我正在寻找一个解决方案,用户应该访问 page1.php 并在一些必要的检查列表之后它应该向用户显示他的请求处理已经开始的消息。即使用户应该关闭窗口,后端 page2.php 也应该完成所有工作。
【问题讨论】:
查看此链接How do I make an asynchronous GET request in PHP? 如果您想在请求页面上显示结果,请使用 file_get_contents
【讨论】:
将实际计算卸载到独立进程(cron 作业或自定义守护程序)并实现某种作业队列(例如,使用数据库)。因此,您的前端(PHP 网站)会将数据添加到数据库表中,然后定期检查它(例如,通过读取“进度”列或其他内容);处理守护进程将在表中查看是否有任何新作业,如果有,则开始处理它们,并根据需要更新表。
【讨论】: