而不是写入到您使用AJAX或额外的数据库字段获取的静态文件,为什么没有另一个PHP脚本只是返回指定任务的完成百分比。然后,您的页面可以通过对所述PHP脚本的轻量级AJAX请求更新进度。
对于实施这个“进度”脚本,如果我对“处理大量数据”的含义有更多的了解,我可以提供更多的建议。如果您正在写入文件,您的“进度”脚本可以简单地检查文件大小并返回完成的百分比。对于更复杂的任务,您可以为特定流程分配基准,并基于最后完成或当前正在运行的流程返回估计完成百分比。
UPDATE
这是“检查进展”,它被简单地等待来自请求的响应的有源脚本的一个建议的方法。我有一个数据挖掘应用程序,我使用了类似的方法。
在您的脚本中,您正在等待的脚本(您要检查脚本的进度),您可以存储(在文件或数据库中,我使用数据库,因为我有数百个进程任何时候都需要跟踪他们的进度,而且我有另一个脚本,可以监视这些进程的进度)进程变量。当过程开始时,将其设置为1.您可以轻松选择脚本将传递的任意数量的“检查点”,并计算给定当前检查点的百分比。然而,对于一个大的请求,你可能更感兴趣的是知道请求完成的大概百分比。一种可能的解决方案是知道返回内容的大小,并根据任何时候收到的百分比设置您的状态变量。即如果您在循环中接收到请求数据,则每次迭代都可以更新状态。或者,如果您正在下载到平面文件,则可以轮询文件的大小。如果知道完成请求所需的大概时间,并简单地与脚本的当前执行时间进行比较,那么随着时间的推移(而不是文件大小),这可能会不准确。显然,这些都不是完美的解决方案,但我希望他们能给你一些洞察你的选择。
嗨达斯汀,这个工具是一个提要爬虫,所以大部分的过程只是在等待响应。你如何让另一个PHP脚本“调用”一个活动脚本来获取百分比?谢谢! – 2010-06-09 21:18:50
我已经更新了关于如何去做的简短讨论:) – defines 2010-06-10 13:48:26
感谢Dustin的详细解释! – 2010-06-11 09:25:25