web消息推送的各种解决办法
本篇文章給大家分享的是有關web消息推送的各種解決辦法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
在各種BS架構的應用程序中,往往都希望服務端能夠主動地向客戶端推送各種消息,以達到類似于郵件、消息、待辦事項等通知。往BS架構本身存在的問題就是,服務器一直采用的是一問一答的機制。這就意味著如果客戶端不主動地向服務器發送消息,服務器就無法得知如何給客戶端推送消息。
web消息推送方法
隨著HTML、瀏覽器等各項技術、標準的發展,依次生成了不同的手段與方法能夠實現服務端主動推送消息,它們分別是:AJAX,Comet,ServerSent以及WebSocket。
小編將對上述提及到的各種技術手段進行直白化的解釋。
web消息推送手段
AJAX
正常的一個頁面在瀏覽器中是這樣工作的:
用戶向給予瀏覽器一個需要訪問的地址
瀏覽器根據這個地址訪問服務器,并與服務器之間創建一個TCP連接(HTTP請求)
服務器根據這個地址和一些其它數據,組建一段HTML文本,將寫入TCP連接,然后關閉連接
瀏覽器得到了來自服務器的HTML文本,解析并呈現了瀏覽器上給用戶瀏覽
此時,用戶點擊了網站上任何一個<a>或觸發任何一個<form>提交時:
瀏覽器根據form的參數或者a的參數,作為訪問的地址
與服務器創建TCP連接
服務器組建HTML文本,然后關閉連接
瀏覽器將當前顯示的頁面摧毀,并按照新的HTML文本呈現一個新的頁面給用戶
我們不難發現的是整個過程中間,一旦建立了一個連接,頁面就無法再維護住了。整個過程看上去有點強買強賣,也許我只要一杯新的可樂,但你非要給我一整個套餐組合。
此時我們可以了解一下XmlHttpRequest組件,這個組件提供我們手動創建一個HTTP請求,發送我們想要的數據,服務器也可以只返回我們想要的結果,最大的好處是,當我們收到服務器的響應時,原來的頁面沒有被摧毀。這就好比,我喊一句"我的咖啡喝完了,我要續杯",然后服務員就拿了一杯咖啡過來,而不是會把我沒吃完的套餐全部倒掉。
總結
以上是生活随笔為你收集整理的web消息推送的各种解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android学习笔记篇2. 单选按钮、
- 下一篇: 网络前缀长度指的是什么意思