2009-02-25 77 views
3

我想就如何實現以下幾點建議:AJAX Progress Bar - 投票,Comet?

我想讓我的用戶意識到通過AJAX在我的服務器上運行的任務的進度。我的服務器運行一個PHP腳本,它使用popen函數通過shell命令下載文件。它定期回聲/打印正在發生的事情。我想用AJAX捕捉這個輸出並將其呈現給用戶。

我被告知另一個問題,我可能需要使用投票或彗星?我非常感謝任何關於如何以最簡單和最有效的方式實現這一目標的幫助或指導。希望我仍然可以使用JQuery。

謝謝大家花時間閱讀本文。

P.S.我能夠得到這一點,感謝stackoverflow社區。 :)

回答

2

這聽起來像是一個很好的機會,阿賈克斯長輪詢,這是一般彗星實施中使用的無數技術之一。有another question on Stack Overflow與示例代碼。

+0

謝謝!利用這種技術......足夠接近它的工作。 :) – Abs 2009-03-02 11:05:09

1

我只是使用常規輪詢而不是彗星,因爲這更像是一個黑客。爲了使UI更加流暢,你可以使用作弊,並且在不檢查服務器的情況下更新你的進度條,只需計算它需要執行任務的平均時間即可。您可以通過輪詢正確的狀態來糾正錯誤。如果你實現的很好,每個人都會認爲它正在更新。

2

Jim Puls發佈的鏈接是一個很好的開始。該問題中的許多用戶提供了關於Comet輪詢& PHP的大量信息。我見過的大多數地方都推薦使用python來完成這項任務。

而且,這裏的幾個環節:

Responsive AJAX applications with COMET

A Progress Bar in Jquery

And Another HTTP Streaming AjAx Pattern Article

我可能會走在末尾提到的路線GS取決於如何 「有必要」 的進展情況酒吧是。如果它只是一個功能,可以幫助用戶意識到處理需要的時間比平時多,那麼通過估算「欺騙」它們比實時輪詢更容易。