前端通訊協定介紹
現今的網站常常需要像聊天室一樣即時做資料接收,而且必須在不重新整理網站的情況下一直接收後端送來的最新資料,今天就讓我們來看看有幾個技術可以做到這點,以及其各自的優缺點吧!
1.輪詢(Polling)
簡單的說就是讓browser每隔一段時間去後端取得最新的資料,這是一種最古老的方式、也相當浪費server的資源,因為browser不會知道server上面是否有新的資料、所以常常去server取資料都是拿到舊的資料、而不是新的,這樣會造成浪費server的連線資源,但這種方式最簡單、也幾乎所有的browser都支援。
圖片出處:https://www.pubnub.com/blog/2014-10-01-websockets-and-long-polling-in-javascript-ruby-and-python/
2.長輪詢(Long-Polling)
這個方式是讓server在收到browser的request後,server會將該request鎖在server上一段時間,直接server上面有新的資料時、再返回結果給browser,接下來browser會立即再發起下一個request給server,然後就一直循環、隨時可以取得server上面的最新資料,比起Polling,這個方式可以減少頻寬浪費以及request的次數。
圖片出處:https://www.fullstackpython.com/websockets.html
3.WebSocket
WebSocket是一種在單個TCP連線上進行全雙工通訊的協定。WebSocket通訊協定於2011年被IETF定為標準RFC 6455,並由RFC7936補充規範,WebSocket API也被W3C定為標準。
根據維基百科:WebSocket使得用戶端和伺服器之間的資料交換變得更加簡單,允許伺服端主動向用戶端推播資料。在WebSocket API中,瀏覽器和伺服器只需要完成一次交握,兩者之間就直接可以建立永續性的連線,並進行雙向資料傳輸。
WebSocket是html5的功能,可以提供一條全雙功的通道,不論效能或是架構上,都好很多,只是因為實做在html5上,所以不一所有的browser都有支援。
圖片出處:https://www.pubnub.com/learn/glossary/what-is-websocket/
以上就是常見的前端通訊技術介紹,想知道更多電商資訊,不要忘記訂閱歐斯瑞電子報,以及追蹤我們的粉絲專頁喔!
我要留言