2013-10-27 80 views
0

说,我的PHP脚本需要一些时间来计算其操作。我需要让客户了解操作进度。一个例子可以是基于PHP的文件下载,我需要向客户提供完成下载所需的估计时间以及需要复制的数据量。PHP:将信息传递给JavaScript

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

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

可能性,来我的脑海:

  • 我应该做定期的AJAX从我的JavaScript中调用到PHP脚本获得进展的信息?
  • 我应该还没有研究对我来说未知的COMET方法

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

预先感谢您。

回答

1

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

有很多不同的COMET风格的技术,但其中最简单的就是长期运行iframe。您有监控操作的进度PHP页面,并输出定期是这样的:

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

...其中relevantUpdateInfo是关于进度的信息,updateProgress是页面上的全局函数包含iframe,它显示UI中的更新信息。

当输出script标签时,请务必输入flush

+0

嗨。谢谢(你的)信息。把我指向正确的方向就好了。从现在开始,我可以去学习长期运行的COMET风格,因为它看起来更像是发出常规的AJAX调用。 –