什麼是最好的方式來實現多個事物的服務器推送。如何一次實現服務器推送更多值?
可以說我只想更新用戶狀態,所以我可以週期性地輪詢服務器狀態1000毫秒並更新頁面。
我發現的另一種方式是,服務器等待30秒,同時檢查是否有任何變化,如果發現有變化,服務器將響應推回客戶端,然後再更新頁面,然後再進行輪詢。
但我該如何執行此檢查網站上的10件事情?例如,如果我想的StackOverflow刷新問題投票時,有人投票,但如何做到這一點,我能想到的唯一的辦法就是
要求服務器票每個問題 - >服務器的每一個問題的投票回覆在頁面上
但是我怎樣才能找出哪些問題投票確實發生了變化?我可以發送所有當前的投票,然後讓服務器比較這些值並僅回覆那些確實發生變化的投票,但我認爲在檢查類似30個值時這樣做會非常無效。
一個例子是Facebook,其中幾乎所有的東西都被服務器推送刷新,但服務器如何才能找出什麼改變了,什麼沒有改變?我發現的一切(包括我的書「Ajax Patterns」)只解釋瞭如何輪詢一個值,但我沒有發現如何一次輪詢許多值(如超過10)。
但服務器如何知道某些更改?我能想到的唯一方法是記錄所有的變化,然後回覆客戶端沒有的所有內容......如果客戶端有#5000,那麼另外兩個人「添加註釋」,所以它的#5002,以及何時第一次客戶端調查新聞,服務器必須從#5000開始獲得所有更改,但不是不那麼有效? – 2009-06-08 23:08:41