我很好奇Facebook如何將數據推送到瀏覽器,就像在新聞提要中一樣。新的數據顯示在Feed的頂部,無需重新加載頁面或點擊按鈕
Facebook是否通過按設定的時間間隔通過AJAX輪詢服務器來實現此目的,或者他們以某種方式將新數據從服務器推送到客戶端嗎?
如果是這樣,他們使用哪種語言或API?Facebook如何將數據推送到新聞Feed?
11
A
回答
3
它實際上被稱爲'長輪詢',或'comet'。執行server push有多種方法,但最常見的方式是在接收數據時保持連接打開(由於瀏覽器對主機的打開連接數量有限制,因此存在缺陷)。 Facebook已經開源了Tornado web servers,它可以處理很多開放的連接(這可能是一個問題,你有很多用戶,但你使用的是Apache)。在收到AJAX響應的那一刻,您只需執行一個新請求,等待下一個響應。
2
他們用AJAX推它,他們使用(至少他們使用),無限滾動。
所以,你會加載頁面,他們會作出初步調用服務器加載基於誰登錄在一些消息,說有像jQuery框架:
http://api.jquery.com/jQuery.ajax/
然後,當您向下滾動時,他們會記下您何時接近頁面底部,並且需要加載更多,以便不會丟失數據,然後他們會自動進行另一個調用。這就是所謂的無限滾動,並跟蹤你在DOM其中:
僅舉一例:http://ajaxian.com/archives/implementing-infinite-scrolling-with-jquery
3
本質上的代碼做一個AJAX調用自己的服務器,或者等待觸發另一個響應請求,輪詢計時器,或者他們打開一個websocket接收數據,只要它被推送。這當然是爲了在提要頂部顯示「新」數據。當頁面到達底部時,他們只是做另一個AJAX調用來獲取下n個項目。
相關問題
- 1. 在Facebook新聞推送
- 2. 如何獲取推特新聞Feed
- 3. 獲取Facebook新聞Feed iOS?
- 4. RSS新聞推送
- 5. 在Facebook上播放視頻新聞Feed
- 6. 從facebook新聞Feed獲取視頻
- 7. Facebook羣組可以發送新聞Feed嗎?
- 8. 如何使用Facebook Graph API在Android Studio中創建新聞Feed?
- 9. 如何使用Facebook圖形API獲取新聞Feed?
- 10. 如何使用Facebook Graph API檢索新聞Feed。
- 11. 無法將Feed推送到publish_stream
- 12. 如何將數據推送到SC.SourceListView
- 13. 如何將數據推送到設備?
- 14. 如何使用FQL返回新聞Feed
- 15. facebook圖表api不會發布到新聞Feed
- 16. Android - 向用戶推送更新/新聞
- 17. 如何發送消息到facebook新聞提要php
- 18. 將新聞推送到我的iOS應用程序
- 19. 發佈swf到新聞源(「Feed Gaming」)
- 20. Firebase Swift分頁新聞Feed
- 21. 單個Facebook頁面追隨者的目標新聞推送?
- 22. 如何使用api獲取新聞Feed究竟如何出現在Facebook首頁新聞源中
- 23. 如何將數據更新推送到視圖
- 24. 如何將新文件推送到GitHub?
- 25. Facebook的開放圖:舊Facebook新聞饋送和新Facebook新聞饋送之間的問題
- 26. 將新聞推送到Facebook的工作,但我需要先登錄。如何自動登錄?
- 27. Facebook發佈到新聞流
- 28. Facebook API離線新聞傳送訪問
- 29. 如何將數據從數據庫推送到asp.net webform?
- 30. CodeIgniter和JSON對象:如何將數據推送到數據庫?
如果你有螢火蟲看看控制檯。你會看到它的一個GET請求,可能通過AJAX請求,只是無限期地旋轉。他們真正的問題是他們如何保持這個請求的開放,因爲它似乎沒有設置超時或間隔。 – grep