0

比如说,我的 PHP 脚本需要一些时间来计算它的操作。我需要让客户了解操作进度。一个示例可以是基于 PHP 的文件下载,我需要向客户端提供完成下载所需的估计时间,以及需要复制的数据量。

在 PHP 中,我可以计算所有需要的信息。但是,如何使用此信息定期更新客户端?

理想情况下,我想从我的 PHP 脚本中动态更新 JavaScript 变量。我读到这是不可能的,那么我有什么选择呢?

我想到的可能性:

  • 我应该在我的 JavaScript 中对 PHP 脚本进行常规 AJAX 调用以获取进度信息吗?
  • 我应该为我学习未知的 COMET 方法吗

上述两种可能性有意义吗?还有其他更实用的解决方案吗?

先感谢您。

4

1 回答 1

1

是的,这两个选项都有意义。

有许多不同的 COMET 风格技术,但最简单的一种是长期运行的iframe. 您有一个 PHP 页面来监控操作的进度,并定期输出如下内容:

<script>parent.updateProgress(relevantUpdateInfo);</script>

...哪里relevantUpdateInfo是有关进度的信息,并且updateProgress是页面上的一个全局函数,其中包含iframe在 UI 中显示更新信息的页面。

输出script标签时,一定要flush输出。

于 2013-10-27T08:59:41.530 回答