0

我有一个表单,在提交时会调用一个 php 页面(sample.php)

我的 php 页面执行了大量操作,大约需要 5 分钟的时间。我也在打印“已执行!” 在我的 sample.php 页面上。

这个 Executed 被打印出来......只有在它执行完所有内容(5分钟)之后。

我希望我的 php 页面在完成所有处理之前打印“已执行”。

我该怎么办?

4

1 回答 1

0

已经发布了几种解决方案,这些解决方案使用ignore_user_abort()flush()在页面交付给客户端后继续后台工作。您应该开始阅读php 网站上有关连接处理的文档

但是,如果您要求一个稳定的解决方案,我会以“sample.php”(表单操作)将接收作业的方式设计您的应用程序,将其添加到队列(可能是数据库表)并报告已添加工作。另一个进程在后台运行(可能是每个 cron 或其他)并自行运行作业。此外,我会创建一个类似“progress.php”的页面,可以在其中查看工作进度。响应可以是 json 或类似的东西,以便它可以轻松地集成到其他页面或用作您被要求的 javascript 进度条的数据馈送。

于 2013-04-08T08:59:53.370 回答