您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關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消息推送的各種解決辦法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。