數據推送的幾種方式?
1.輪詢:
客戶端定時向服務器發送Ajax請求,服務器接到請求后馬上返回響應信息,并關閉連接。
優點:后端程序編寫比較容易
缺點:請求中大半是無用的,浪費帶寬和服務器資源
實例:適用于小型應用
2.長輪詢:
客戶端向服務器發送Ajax請求,服務器接到請求后Hold住連接,直到有新消息才返回響應信息,并關閉連接;客戶端處理完響應信息后再向服務器發送新的請求。
優點:在無消息的情況下不會頻繁的請求,耗費的資源少
缺點:服務器Hold住連接會消耗資源,返回數據順序無法保證,難于管理和維護
實例:WebQQ、Hi網頁版、FaceBook IM等
3.長連接:
在頁面中嵌入一個隱藏的jframe,將這個隱藏的iframe的src屬性設置為對一個長連接的請求或者采用XRH請求,服務器端就能源源不斷地往客戶端輸入數據。
優點:消息即時到達,不發無用的請求;管理起來也相對方便
缺點:服務器維護一個長連接會增加開銷
實例:Gmail聊天