PHP强制停止页面加载

时间:2014-02-25 22:49:15

标签: php ajax database

我编写了一个php网页。页面中有一个while循环,它从数据库中检索数据并使用数据执行某些逻辑并更新数据库中的相同数据。此循环需要4分钟以上才能完成整个循环处理。然后处理剩余的页面代码。

现在在页面加载while循环过程的某个时候还没有完成,如果我按下Esc按钮,这意味着,我强制停止页面进行更多处理。现在如果我突然刷新页面,在同一个网站上加载任何页面需要很长时间。我假设当我突然刷新页面时,循环的剩余部分正在完成。

我希望此页面能够正常重新加载页面,而不依赖于之前停止的操作。

你心中有这个问题的解决方案吗?我也通过Ajax尝试过,但同样的问题仍然存在。

1 个答案:

答案 0 :(得分:1)

您需要做的是根据请求执行外部流程,然后报告结果。

我通常使用包含作业队列的数据库中的表来执行此操作。当作业请求进入时,它会进入数据库。每分钟都有一个cron作业检查新工作,或者如果没有正在进行的工作,我会启动代码来运行作业。

表中更新了工作状态(完成百分比和未完成工作)。当站点上的用户请求结果时,他们可以查看状态,或者在数据完成时查看数据。