<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      前端進階(2)使用fetch/axios時, 如何取消http請求

      前端進階(2)使用fetch/axios時, 如何取消http請求

      1. 需求

      現在前端都是SPA,我們什么時候需要取消HTTP請求呢?

      1. 當我們從一個頁面跳轉到另外一個頁面時,如果前一個頁面的請求還沒有返回,那么我們希望取消前一個頁面的請求
      2. 某些操作耗時比較長(不能是保存等操作哦),如果用戶不想等待呢,取消了操作,對應我們也需要取消HTTP請求

      對于原生的XMLHttpRequest,是支持取消http請求(abort)操作的: XMLHttpRequest.abort()
      那么,當我們使用ES6的fetch,或者使用axios庫,如何實現呢?

      2. Fetch 取消http請求

      fetch與XMLHttpRequest(XHR)類似,是ES6之后瀏覽器(除IE之外)默認支持的http操作函數。可惜不是默認支持abort操作。但我們可以通過AbortController來實現, 直接上代碼:

      // 聲明AbortController
      const controller = new AbortController();
      
      // 正常的http調用
      fetch('https://jackniu81.github.io', { signal: controller.signal })
          .then(r => r.json())
          .then(response => {
              console.log(response);
          })
          .catch(err => {
              if (err.name === 'AbortError') {
                  console.log('Fetch was aborted')
              } else {
                  console.log('Error', err)
              }
          });
      
      // 需要取消請求時,調用:
      controller.abort()
      

      3. axios取消http請求

      axios 已經實現了abort操作,

      var source = axios.CancelToken.source();
      
      axios.get('https://jackniu81.github.io', {
        cancelToken: source.token
      }).catch(function(err) {
        if (axios.isCancel(err)) {
          // handle our cancel operation
          console.log('Request canceled', err.message);
        } else {
          // handle real error here
        }
      });
      
      // 需要取消請求時,調用:
      source.cancel('Abort Request');
      

      4. jquery 取消http請求

      $.ajax內部已經實現了abort功能。直接調用.abort()即可。

      5. 總結

      1. fetchAbortController集成:我們將signal屬性作為可選參數(option)進行傳遞,之后 fetch 會監聽它,因此它能夠中止 fetch.
      2. AbortController 是可伸縮的,可以用于一次性終止多個請求
      3. 參考fetch的實現,我們自己的代碼也完善一下,實現基于AbortController操作取消操作;
      4. axios 默認支持Abort操作;
      posted on 2021-04-25 15:31  Jack Niu  閱讀(1367)  評論(0)    收藏  舉報

      Affiliate Marketing and Web Technology?
      主站蜘蛛池模板: 99精品国产一区二区三区2021| 国产一区二区三区怡红院| 亚洲一区二区av偷偷| 国产精品va在线观看无码| 五月天免费中文字幕av| 久青草国产综合视频在线| 国产精品无遮挡猛进猛出| 99热精品毛片全部国产无缓冲 | 国产精品伦人一久二久三久| 秋霞电影网| 亚洲国产精品综合久久网络| 成人做受120秒试看试看视频 | 最新精品露脸国产在线| 亚洲国产高清第一第二区| 亚洲欧美日韩久久一区二区| 一本久久a久久精品综合| 国偷自产一区二区三区在线视频 | 免费又爽又大又高潮视频| 国色天香中文字幕在线视频| 国模无吗一区二区二区视频| 无码中文字幕av免费放| 你拍自拍亚洲一区二区三区| 大香伊蕉在人线国产最新2005| 日韩激情一区二区三区| 一区二区亚洲人妻av| 久久亚洲国产精品久久| 国产精品二区中文字幕| 7878成人国产在线观看| 久久久久亚洲AV成人片一区| 在线涩涩免费观看国产精品| 国产视频最新| 人妻无码vs中文字幕久久av爆 | 中文字幕在线视频不卡一区二区| 国产亚洲av人片在线播放| 亚洲高清成人av在线| 人妻一区二区三区人妻黄色| 精品亚洲AⅤ无码午夜在线| 国产不卡精品视频男人的天堂| 美女又黄又免费的视频| 一区二区三区鲁丝不卡| 亚洲一区av无码少妇电影|