2012-02-17 150 views
0

我有需要每分鐘自動更新一次的網格。我想異步更新網格,以便網頁不會向服務器發送任何請求。只有服務器會知道何時發送新的讓我們說JSon數據到客戶端。這可能嗎?我可以通過ping服務器發送數據給客戶端嗎?帶出HTTP請求的HTTP響應

謝謝。

回答

0

不需要。您必須使用某種開放套接字,無論如何這是一種非常低級的ping形式。標準是簡單地有一個頻繁但很短的JSON請求來檢查新的數據。

編輯 - 有WebSocket,但似乎在服務器端的實施更先進&你會削弱你的受衆範圍。只需頻繁,簡短的JSON請求。

0

不,您必須發送HTTP請求才能獲得響應。請求和響應之間的延遲可以,只要你想要的,但是,(所以請不要積極地輪詢更新):

http://en.wikipedia.org/wiki/Push_technology#Long_polling

您只需提出請求,等待它完成(當有事情發生時),立即啓動另一個請求,然後處理響應。

這樣,服務器總是有一個請求準備好,它可以響應以便「推送」到瀏覽器(或者很快會做出)。

+0

>最大的障礙是HTTP 1.1規範,該規範規定瀏覽器與Web服務器的連接數不能超過兩個。因此,爲實時事件保持一個連接打開會對瀏覽器的可用性產生負面影響:在等待先前請求的結果(例如一系列圖像)的同時,瀏覽器可能被阻止發送新的請求。 – Tim 2012-02-17 16:09:36

+0

@Tim在頁面加載完成後開始第一輪投票。這種方法被Facebook等成功使用。 – 2012-02-17 16:11:03

+0

另外,我剛剛在Firefox中檢查了'network.http.max-connections-per-server'。它默認爲_15_。 – 2012-02-17 16:13:56