日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ajax和fetch哪个好,axios和ajax,fetch的区别

發布時間:2025/3/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ajax和fetch哪个好,axios和ajax,fetch的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1,傳統 Ajax 指的是 XMLHttpRequest(XHR), 最早出現的發送后端請求技術,隸屬于原始js中,核心使用XMLHttpRequest對象,多個請求之間如果有先后關系的話,就會出現回調地獄。

JQuery ajax 是對原生XHR的封裝,除此以外還增添了對JSONP的支持。經過多年的更新維護,真的已經是非常的方便了,優點無需多言;如果是硬要舉出幾個缺點,那可能只有:

1.本身是針對MVC的編程,不符合現在前端MVVM的浪潮

2.基于原生的XHR開發,XHR本身的架構不清晰。

3.JQuery整個項目太大,單純使用ajax卻要引入整個JQuery非常的不合理(采取個性化打包的方案又不能享受CDN服務)

4.不符合關注分離(Separation of Concerns)的原則

5.配置和調用方式非常混亂,而且基于事件的異步模型不友好。

2.axios它本身具有以下特征:

1.從瀏覽器中創建 XMLHttpRequest

2.支持 Promise API

3.客戶端支持防止CSRF

4.提供了一些并發請求的接口(重要,方便了很多的操作)

5.從 node.js 創建 http 請求

6.攔截請求和響應

7.轉換請求和響應數據

8.取消請求

9.自動轉換JSON數據

3.fetch

fetch號稱是AJAX的替代品,是在ES6出現的,使用了ES6中的promise對象。Fetch是基于promise設計的。Fetch的代碼結構比起ajax簡單多了,參數有點像jQuery ajax。但是,一定記住fetch不是ajax的進一步封裝,而是原生js,沒有使用XMLHttpRequest對象。

fetch的優點:

1.符合關注分離,沒有將輸入、輸出和用事件來跟蹤的狀態混雜在一個對象里

2.更好更方便的寫法

坦白說,上面的理由對我來說完全沒有什么說服力,因為不管是Jquery還是Axios都已經幫我們把xhr封裝的足夠好,使用起來也足夠方便,為什么我們還要花費大力氣去學習fetch?

我認為fetch的優勢主要優勢就是:

1. 語法簡潔,更加語義化

2. 基于標準 Promise 實現,支持 async/await

3. 同構方便,使用 [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch)

4.更加底層,提供的API豐富(request, response)

5.脫離了XHR,是ES規范里新的實現方式

最近在使用fetch的時候,也遇到了不少的問題:

fetch是一個低層次的API,你可以把它考慮成原生的XHR,所以使用起來并不是那么舒服,需要進行封裝。

例如:

1)fetch只對網絡請求報錯,對400,500都當做成功的請求,服務器返回 400,500 錯誤碼時并不會 reject,只有網絡錯誤這些導致請求不能完成時,fetch 才會被 reject。

2)fetch默認不會帶cookie,需要添加配置項: fetch(url, {credentials: 'include'})

3)fetch不支持abort,不支持超時控制,使用setTimeout及Promise.reject的實現的超時控制并不能阻止請求過程繼續在后臺運行,造成了流量的浪費

4)fetch沒有辦法原生監測請求的進度,而XHR可以

總結

以上是生活随笔為你收集整理的ajax和fetch哪个好,axios和ajax,fetch的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。