2010-08-27 163 views
24

對於需要非常迅速刷新數據的應用程序,使用JavaScript輪詢服務器的最佳實踐是什麼?我使用jQuery作爲前端,Java Spring Framework作爲後端。使用JavaScript進行服務器輪詢

刷新數據的示例可能是非常迅速(每1秒)更新得到更新的項目列表。

+1

定義十分迅速。一分鐘?每十秒一次?每秒一次?什麼樣的數據? – 2010-08-27 10:21:33

+0

每隔1秒鐘,數據就會顯示文字,也許一些html數量很小 – newbie 2010-08-27 10:23:08

回答

39

您可能想要使用jQuery's Ajax functions來每隔一秒左右輪詢服務器。然後服務器可以近乎實時地向瀏覽器發出指令。

您也可以考慮long polling而不是以上,以減少等待時間而不增加投票的頻率。

引用Comet Daily: The Long-Polling Technique

的長輪詢彗星技術是優化傳統的輪詢以減少等待時間的技術。

傳統的輪詢以固定的時間間隔向服務器發送XMLHttpRequest。例如,每15秒打開一個新的XMLHttpRequest,收到即時響應並關閉連接。

長輪詢發送一個請求到服務器,但是一個響應不會返回給客戶端,直到有一個可用。一旦連接關閉,無論是由於客戶端收到響應,或者如果請求超時,都會啓動新的連接。其結果是顯着減少了延遲,因爲服務器通常在準備好返回信息以返回客戶端時建立了連接。

除了上述,我也建議你看看接受的答案下面的堆棧溢出後爲長輪詢技術的詳細描述:

+0

+1非常有趣!「 – 2010-08-27 10:25:28