显示PHP脚本的完整百分比

时间:2009-12-12 19:12:40

标签: php javascript jquery

我有一个PHP脚本,大约需要10分钟才能完成。

我想向用户提供一些关于完成百分比的反馈,并且需要一些关于如何操作的想法。

我的想法是用jquery和$ .post命令调用php页面。

有没有办法在不结束脚本的情况下从PHP脚本返回信息?

例如,根据我对此的了解,如果我返回变量,PHP脚本将停止运行。

我的想法是将脚本拆分为多个PHP文件,并在给出前一个返回之后运行.post。

但是这仍然无法准确评估剩余的时间,因为每个脚本的大小都不同。

关于如何做到这一点的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:8)

您可以echoflush()输出,但这是次优且相当脆弱的解决方案。

对于长时间操作,最好在后台启动脚本并在共享位置存储/更新脚本状态。

e.g。您可以使用fopen('http://…调用,proc_open PHP CLI进程或甚至只在<iframe>中打开长时间运行的脚本来编写脚本。

您可以将状态存储在数据库或共享内存中(使用apc_store())。

这将允许用户随时检查脚本的状态(通过刷新页面或使用AJAX),如果浏览器的连接超时,用户将不会忘记脚本。

它还可以避免两次启动相同的长脚本。