2013-10-27 79 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調用。 –