2

我不是 http 请求方面的专家,所以这个问题对某些人来说可能是微不足道的。我正在向 php 脚本发送请求,这需要花费大量时间来处理文件并返回响应。有没有办法在此脚本完成其任务之前发送响应以让用户了解进程状态?由于此任务可能需要几分钟时间,我想在流程的关键部分完成时通知用户。

注意:我不能将此请求分成其他几个

如果是这样,我可能没有正确的方法,您还有其他想法如何处理吗?

4

3 回答 3

1

从技术上讲是的,但它需要您对 http-stack 进行细粒度控制,在典型的 php 设置中您可能拥有也可能没有。我建议您查看其他解决方案(例如,请求启动任务 - 然后轮询以获取有关进度的更新)

于 2012-05-30T14:07:29.430 回答
0

http://www.redips.net/javascript/ajax-progress-bar/

这是一篇很棒的文章,介绍了如何创建 ajax 和 php 一起使用的进度条。

让我知道这是否没有意义!

于 2012-05-30T14:09:01.720 回答
0

我认为长时间处理请求的最佳方式是 cron 作业。您可以发送请求,该请求将创建“任务”并通过 cron 作业捕获任务。Cron 作业可以在工作时更改任务状态,您可以通过间隔请求检查任务状态。我无法想象另一种方式来通知用户有关请求处理的信息。一旦您响应,您的标头就会被发送并且 PHP 停止。

编辑:应该注意的是 Cron 作业仅在 Linux 服务器上可用。Windows 服务器需要访问任务调度程序,而大多数 Web 主机都不允许。

于 2012-05-30T14:30:29.753 回答