輪詢和長輪詢的優缺點


在網上查了一下資料,發現輪詢和長輪詢還有不同的定義:

  1. 輪詢:客戶端定時向服務器發送Ajax請求,服務器接到請求后馬上返回響應信息並關閉連接。
    優點:后端程序編寫比較容易。
    缺點:請求中有大半是無用,浪費帶寬和服務器資源。
    實例:適於小型應用。

  2. 長輪詢:客戶端向服務器發送Ajax請求,服務器接到請求后hold住連接,直到有新消息才返回響應信息並關閉連接,客戶端處理完響應信息后再向服務器發送新的請求。
    優點:在無消息的情況下不會頻繁的請求。
    缺點:服務器hold連接會消耗資源。
    實例:WebQQ、Hi網頁版、Facebook IM。

另外,對於長連接和socket連接也有區分:

  1. 長連接:在頁面里嵌入一個隱蔵iframe,將這個隱蔵iframe的src屬性設為對一個長連接的請求,服務器端就能源源不斷地往客戶端輸入數據。
    優點:消息即時到達,不發無用請求。
    缺點:服務器維護一個長連接會增加開銷。
    實例:Gmail聊天

  2. Flash Socket:在頁面中內嵌入一個使用了Socket類的 Flash 程序JavaScript通過調用此Flash程序提供的Socket接口與服務器端的Socket接口進行通信,JavaScript在收到服務器端傳送的信息后控制頁面的顯示。
    優點:實現真正的即時通信,而不是偽即時。
    缺點:客戶端必須安裝Flash插件;非HTTP協議,無法自動穿越防火牆。
    實例:網絡互動游戲。

以上是四種請求方式的介紹和優缺點比較。

說得再通透點就是:

長輪循是客戶端發起的,間隔一定的時間向服務器請求事件,AJAX前端實現方式。
優點:就是不需要保持和服務器一直聯系, 資源占用會少一些
缺點:可能會產生比較多的請求, 或請求失敗造成的數據混亂。

長連接服務器和客戶端會保持一個長久的聯系。
優點:數據更新即時性好,體驗流暢。
缺點:對服務器的資源會有一個占用,所以相對占用資源比較大,另外HTTP長連接有時效性,不是可靠連接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM