说,我的PHP脚本需要一些时间来计算其操作。我需要让客户了解操作进度。一个例子是基于PHP的文件下载,我需要向客户提供完成下载所需的估计时间,以及需要复制的数据量。
在PHP中,我可以计算所有需要的信息。但是,如何使用此信息定期更新客户端?
理想情况下,我想从我的PHP脚本中动态更新JavaScript变量。我读到这是不可能的,那么我有什么选择呢?
我想到的可能性:
- 我应该从我的JavaScript中定期对PHP脚本进行AJAX调用以获取进度信息吗? 我
- 应该为我学习未知的COMET方法吗
以上两种可能性有意义吗?还有其他更实用的解决方案吗?
提前谢谢你。
是的,这两个选项都是有意义的。
有许多不同的COMET风格的技术,但最简单的一种是长期运行的iframe
。您有一个 PHP 页面,用于监视操作的进度,并定期输出如下内容:
<script>parent.updateProgress(relevantUpdateInfo);</script>
。其中relevantUpdateInfo
是有关进度的信息,updateProgress
是页面上的全局函数,其中包含在 UI 中显示更新信息的iframe
。
输出script
标签时,请务必flush
输出。