輪詢polling:簡單來講就是客戶端根據必定的週期不斷的向服務端發出請求,來保證客戶端和服務端的同步。可是這樣有一個問題,就是每到週期時間客戶端就會向服務端發出請求,可能服務端尚未更新,返回的數據是空的,也可能返回的是服務端更新的數據,這樣就會帶來不少無效的數據傳輸,低效。瀏覽器
推送:long polling,也叫長鏈接。簡單來講推送就是客戶端這邊向服務端發出一次請求以後掛起,而後到服務端有更新的時候服務端把數據傳輸給客戶端,客戶端接收處理以後纔會開始下一次請求。客戶端向服務端發送請求這個過程當中,服務端不更新的話,只須要保持和客戶端的基本鏈接,直到服務端有數據更新傳到客戶端。服務器
推送分爲長輪詢和流這兩種:
長輪詢:就是客戶端向服務端發送一次請求後掛起,直到服務端返回更新的數據或者服務端一直沒有更新,請求時間超過必定週期請求超時,纔開始下一次請求。這樣是爲了不輪詢的時候的沒必要要的數據傳輸,可是當服務端數據更新比較頻繁的話,長輪詢較之輪詢沒有什麼改進。
流:就是客戶端這邊開一個隱藏的小窗口向服務端發出請求,服務端收到請求後作出迴應,而且不斷更新鏈接狀態,來保持客戶端和服務端的鏈接。而後服務端有更新的話就能不斷的傳輸給客戶端。可是須要針對不一樣的瀏覽器設計不一樣的方案,併發量大的時候也是對服務器資源的考驗。併發