-
1 # 爪哇程式猿
-
2 # 孟灑一
Websocket只是為了再web端實時通訊業務場景下一種新的高效能技術方案,本身各具優勢,何來代替ajax可言。如果不需要實時獲取資料為什麼要使用ws來佔用伺服器資源。
-
3 # 冰河zyc
不能,各有所長,各有所短,不存在取代誰的問題,不同的場景使用不同的技術,或者兩種配合來用才是最佳的解決方案。
難道說發明了飛機就要取代火車麼?
-
4 # 萬能擼Sir
看了很多回答,沒有說到重點,http和websocket會並行存在,需求不一樣,所以不存在替代。為什麼?雖然ws可以實現所有http的功能,但是比如說新聞站,以展示為主,websocket需要保持連線,如果用ws會消耗更多伺服器資源。所以,只有請求頻繁或者有需要伺服器推送,才會選擇ws,否則都是http。
-
5 # 七喜58326316
我理解是這樣的,不知道對不對,websocket是有狀態的連線,可以實現雙向通訊,但是會佔用伺服器資源,ajax是客戶端發出的非同步請求,完成後會釋放連線,應用場景不同。非計算機專業,回答的不對請指正!
-
6 # 網路圈
軟體專案開發中,往往需要前端與後端進行資料互動,而資料互動有兩種最常見的形式Ajax和WebSocket。一般而言,前後端實時的資料互動使用WebSocket,而非實時資料的互動用Ajax的居多。
既然都是資料互動方案,曾有人稱WebSocket可以替代Ajax,真的是這樣嗎?
Ajax 與 WebSocket 對比1、Ajax是一處非同步資料傳輸技術
Ajax是非同步JavaScript和XML技術的實現,透過Ajax可以讓網頁非同步更新資料(不需要重新載入整個頁面),對頁面中的部分資料進行更新,而且不會阻塞。
現在所有瀏覽器對於Ajax技術支援都很好,基本上每個網站都會用到此技術。
2、WebSocket是HTML5推出的新協議
WebSocket是隨著HTML5推出的一種新的協議,透過WebSocket可實現瀏覽器端與服務端的雙向實時通訊(如聊天室),意味著伺服器端可以主動推送資料至客戶端。
現在大部分瀏覽器支援WebSocket協議,但依舊有些低版本的瀏覽器是不支援此協議的。
WebSocket未來可以替代Ajax,但當下不行WebSocket相較於Ajax有著實時性好、效能高的優點,未來會成為主流技術,但當前不行,畢竟WebSocket對瀏覽器是有要求的。
-
7 # 老菜鳥vcasm
websocket的優勢在於節約頻繁資料傳送時產生http頭產生的無效流量,優點和缺點都在於長連結這一個特點,現在移動客戶端很容易斷開原先的網路重新建立連線,為了解決這個問題需要做很多處理,最終實現程式碼要比ajax複雜很多
-
8 # 歪泥偶巴
很難,ws是無狀態的,收發你得帶上呼叫號,累,實際中只能做單一業務資料交換,你可以想想你所有的資料交換,你得封裝一個業務層回撥你的程式碼。真心累,ajax只需要一條語句。
-
9 # 花花之主
websocket的優勢是服務端可以主動推送資料到客戶端,但是因為要保持連結所以對服務端資源佔用更多,所以短時間內不會取代Ajax。
-
10 # 隕墮亞
一個是長連結通訊,一個是非同步通訊。二個不一樣場景下的技術。怎麼比?問問題的人,先弄清楚什麼是ajax什麼是websocket吧。
回覆列表
不會替代
WebSocket 是 HTML5 開始提供的一種在單個 TCP 連線上進行全雙工通訊的協議。
WebSocket 使得客戶端和伺服器之間的資料交換變得更加簡單,允許服務端主動向客戶端推送資料。在 WebSocket API 中,瀏覽器和伺服器只需要完成一次握手,兩者之間就直接可以建立永續性的連線,並進行雙向資料傳輸。
在 WebSocket API 中,瀏覽器和伺服器只需要做一個握手的動作,然後,瀏覽器和伺服器之間就形成了一條快速通道。兩者之間就直接可以資料互相傳送。
現在,很多網站為了實現推送技術,所用的技術都是 Ajax 輪詢。輪詢是在特定的的時間間隔(如每1秒),由瀏覽器對伺服器發出HTTP請求,然後由伺服器返回最新的資料給客戶端的瀏覽器。這種傳統的模式帶來很明顯的缺點,即瀏覽器需要不斷的向伺服器發出請求,然而HTTP請求可能包含較長的頭部,其中真正有效的資料可能只是很小的一部分,顯然這樣會浪費很多的頻寬等資源。HTML5 定義的 WebSocket 協議,能更好的節省伺服器資源和頻寬,並且能夠更實時地進行通訊。