国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【學一點兒前端】ajax、axios和fetch的概念、區(qū)別和易混淆點

這篇具有很好參考價值的文章主要介紹了【學一點兒前端】ajax、axios和fetch的概念、區(qū)別和易混淆點。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

省流讀法

ajax是js異步技術的術語,早期相關的api是xhr,它是一個術語。
fetch是es6新增的用于網(wǎng)絡請求標準api,它是一個api。
axios是用于網(wǎng)絡請求的第三方庫,它是一個庫。

1.Ajax

它的全稱是:Asynchronous JavaScript And XML,翻譯過來就是“異步的 Javascript 和 XML”。
很多小伙伴可能會誤以為 Ajax 是發(fā)請求的一種方式,或者把XMLHttpRequest 與 Ajax 劃等號,其實這是錯誤和片面的。

正解:

Ajax 是一個技術統(tǒng)稱,是一個概念模型,它囊括了很多技術,并不特指某一技術,它很重要的特性之一就是讓頁面實現(xiàn)局部刷新。

特點:

局部刷新頁面,無需重載整個頁面。

簡單來說,Ajax 是一種思想,XMLHttpRequest 只是實現(xiàn) Ajax 的一種方式。其中 XMLHttpRequest 模塊就是實現(xiàn) Ajax 的一種很好的方式,這也是很多面試官喜歡讓面試者手撕的代碼之一。
利用 XMLHttpRequest 模塊實現(xiàn) Ajax。

XMLHttpRequest示例代碼

<body>
  <script>
    function ajax(url) {
      const xhr = new XMLHttpRequest();
      xhr.open("get", url, false);
      xhr.onreadystatechange = function () {
        // 異步回調函數(shù)
        if (xhr.readyState === 4) {
          if (xhr.status === 200) {
            console.info("響應結果", xhr.response)
          }
        }
      }
      xhr.send(null);
    }
    ajax('https://smallpig.site/api/category/getCategory')
  </script>
</body>

2.Fetch

Fetch 是在 ES6 出現(xiàn)的,它使用了 ES6 提出的 promise 對象。它是 XMLHttpRequest 的替代品。
很多小伙伴會把它與 Ajax 作比較,其實這是不對的,我們通常所說的 Ajax 是指使用 XMLHttpRequest 實現(xiàn)的 Ajax,所以真正應該和 XMLHttpRequest 作比較。

正解:

Fetch 是一個 API,它是真實存在的,它是基于 promise 的。

特點:

使用 promise,不使用回調函數(shù)。 采用模塊化設計,比如 rep、res 等對象分散開來,比較友好。
通過數(shù)據(jù)流對象處理數(shù)據(jù),可以提高網(wǎng)站性能。

所以這里就和 Ajax 又很大不同了,一個是思想,一個是真實存在的 API,不過它們都是用來給網(wǎng)絡請求服務的,我們一起來看看利用 Fetch 實現(xiàn)網(wǎng)絡請求。

fetch示例代碼

<body>
  <script>
    function ajaxFetch(url) {
      fetch(url).then(res => res.json()).then(data => {
        console.info(data)
      })
    }
    ajaxFetch('https://smallpig.site/api/category/getCategory')
  </script>
</body>

上段代碼利用 Fetch 發(fā)送了一個最簡單的 get 請求,其中最重要的特點之一就是采用了.then 鏈式調用的方式處理結果,這樣不僅利于代碼的可讀,而且也解決了回調地獄的問題。

3.axios

Axios 是用于發(fā)出網(wǎng)絡請求的第三方 HTTP 客戶端庫。絕大部分使用基于xhr封裝,截止文章編寫時間也已經(jīng)支持fetch,可以在瀏覽器和 Node.js 中使用。它提供了更高級別的封裝,使發(fā)送請求和處理響應更加簡單和靈活。axios 支持以簡潔的方式設置請求參數(shù)、處理請求和響應攔截器,并提供了更好的錯誤處理和取消請求的支持。

正解:

Axios 是用于發(fā)出網(wǎng)絡請求的第三方 HTTP 客戶端庫。

特點:

使用 Promise 對象來處理異步請求的結果,可以更加方便地進行鏈式調用和錯誤處理。

axios示例代碼

axios.get('https://api.example.com/data')
  .then(function(response) {
    console.log(response.data);
  })
  .catch(function(error) {
    console.log(error);
  });

總結

ajax是js異步技術的術語,早期相關的api是xhr,它是一個術語。
fetch是es6新增的用于網(wǎng)絡請求標準api,它是一個api。
axios是用于網(wǎng)絡請求的第三方庫,它是一個庫。

易混淆點以及注意點文章來源地址http://www.zghlxwxcb.cn/news/detail-723420.html

  1. xhr是ajax的一種實現(xiàn)
  2. fetch應該和xhr作比較,不能和ajax和axios做比較
  3. axios和fetch都基于promise
  4. fetch使用了關注分離的設計思想(請求和響應結果分開處理)
  5. axios目前也支持fetch

到了這里,關于【學一點兒前端】ajax、axios和fetch的概念、區(qū)別和易混淆點的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • javascript常見100問|前端基礎知識|問ajax-fetch-axios-區(qū)別請用 XMLHttpRequestfetch 實現(xiàn) ajax節(jié)流和防抖px em rem vw/箭頭函數(shù)的缺點

    HTML CSS JS HTTP 等基礎知識是前端面試的第一步,基礎知識不過關將直接被拒。本章將通過多個面試題,講解前端??嫉幕A知識面試題,同時復習一些重要的知識點。 扎實的前端基礎知識,是作為前端工程師的根本?;A知識能保證最基本的使用,即招聘進來能干活,能產出

    2024年04月27日
    瀏覽(34)
  • JS面試題之ajax、axios、fetch的區(qū)別

    AsynchronousJavascriptAndXML 異步JavaScript和XML 它是一種創(chuàng)建 交互式 網(wǎng)頁應用的 網(wǎng)頁開發(fā)技術 。 它是一種在 無需重新加載整個網(wǎng)頁 的情況下,能夠 更新部分網(wǎng)頁 的技術。 通過在后臺與服務器進行少量數(shù)據(jù)交換,Ajax可以使網(wǎng)頁實現(xiàn)異步更新。 這意味著可以在不重新加載整個網(wǎng)頁

    2023年04月23日
    瀏覽(35)
  • 前端如何中斷請求 ( axios、原生 ajax、fetch)

    使用場景 在前端開發(fā)中,我們經(jīng)常需要中斷請求來優(yōu)化性能或處理特定的業(yè)務需求。以下是一些常見的使用場景: 比如 重復請求:當頁面中多個組件并發(fā)調用同一個接口時,在第一個請求返回后,我們可能需要中斷其他組件對該接口的調用,以避免重復請求和冗余數(shù)據(jù)。這

    2024年02月04日
    瀏覽(43)
  • 前端請求數(shù)據(jù)方法 —— Ajax、Fetch、Axios、Get、Post

    Ajax :( “Asynchronous JavaScript and XML”(異步JavaScript和XML)的縮寫)是一組Web開發(fā)技術,Ajax不是一種技術,而是一個編程概念。AJAX 這個詞就成為 JavaScript 腳本發(fā)起 HTTP 通信的代名詞,也就是說,只要用腳本發(fā)起通信,就可以叫做 AJAX 通信。 技術實現(xiàn) 用于演示的HTML(或 XHTML)和

    2024年01月22日
    瀏覽(28)
  • ajax和fetch的區(qū)別

    ajax 和 fetch的相同點和區(qū)別是什么? 以前我們都用ajax去做請求, 但是原生的ajax不好用,我們會用$.ajax或者axios插件去請求,他們都是ajax的封裝 最近出來個fetch是什么? 問到這里的時候,你就已經(jīng)入坑了, 因為 ajax只是一個異步xhr解決方案的概念,不能和fetch這個api同日而語

    2024年02月11日
    瀏覽(18)
  • fetch、axios 和 XMLHttpRequest的區(qū)別

    官方文檔:https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest XMLHttpRequest (XHR) 是一種在客戶端和服務器之間進行異步數(shù)據(jù)交換的技術,它允許瀏覽器向服務器發(fā)送HTTP請求,獲取數(shù)據(jù)并更新部分網(wǎng)頁內容,而無需刷新整個頁面。XHR 是現(xiàn)代Web開發(fā)中常用的一種技術,用于實現(xiàn)AJA

    2024年01月16日
    瀏覽(19)
  • Vue中如何使用Ajax請求是通過第三方庫axios或者原生的fetch API來實現(xiàn)的

    在Vue中使用Ajax請求通常是通過第三方庫,比如axios或者原生的fetch API來實現(xiàn)的。這里我將為你展示如何使用axios庫在Vue中進行Ajax請求。 首先,你需要安裝axios庫。你可以通過npm或者yarn來安裝: 使用npm: bash? ? ?復制 npm install axios 或者使用yarn: bash 復制 yarn add axios 安裝完成后

    2024年04月13日
    瀏覽(109)
  • 前端數(shù)據(jù)處理:AJAX與Fetch API深入解析

    前端數(shù)據(jù)處理是Web開發(fā)中不可或缺的一部分,它涉及到如何從服務器獲取數(shù)據(jù),并將其轉換為易于處理的格式。AJAX和Fetch API是兩種常用的前端數(shù)據(jù)處理技術,它們都允許開發(fā)人員在不重新加載整個頁面的情況下更新部分頁面內容。AJAX(Asynchronous JavaScript and XML)是一種異步請求

    2024年02月21日
    瀏覽(20)
  • 前端網(wǎng)絡請求之JavaScript XHR、Fetch、Axios

    AJAX:一種在無需重新加載整個網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術。在后臺與服務器進行少量數(shù)據(jù)交換,Ajax 可以使網(wǎng)頁實現(xiàn)異步更新。在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新 Fetch:基于 promise 設計的。Fetch 的代碼結構比起 ajax 簡單多。fetch 不是 aj

    2024年01月23日
    瀏覽(33)
  • ajax和axios有什么區(qū)別?

    ajax和axios有什么區(qū)別?

    1、ajax和axios有什么區(qū)別? ajax特點: ?? ?1.異步的XML和JavaScript ?? ?2.可以運行瀏覽器 不可以運行在node ?? ?3.發(fā)送給后臺數(shù)據(jù)需要手動轉換 請求頭手動設置 ?? ?4.后端響應的數(shù)據(jù)需要自己轉換/json格式 axios特點: ?? ?1.基于promise的http庫 ?? ?2.可以調用promise的api ?? ?3.axi

    2024年02月08日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包