久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

一文講解Vue中路由切換終止異步請求(附代碼)

之前的文章《深入解析js中實現隊列(代碼分享)》中,給大家了解了js中實現隊列。下面本篇文章給大家了解Vue中路由切換終止異步請求,有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所助。

一文講解Vue中路由切換終止異步請求(附代碼)

問題:

SPA模式開發當中,比如VUE,當前路由切換的時候如何終止正在發生的異步請求呢。

結果:

假如請求超時并且有設定超時時間。有一堆的異步請求在執行,當用戶切換到另一個頁面,這些請求還未終止,并且當服務器響應之后,反饋的結果不是當前頁面所期待的。最終會誤導用戶造成一些不必要的結果。也給web造成性能問題。

解決方案:

把執行的請求存入隊列,當路由切換的時候終止隊列里的異步請求。

首先搞一棵樹來存儲請求隊列

import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); let store = new Vuex.Store({   state: {     requests: [],   }, });  new Vue({   el: "#app",   router: router,   render: (h) => h(App),   store, });

利用ajax請求和終止

var xhr = $.ajax({   type: "POST",   url: "xxxsx",   data: "",   success: function () {     alert("ok");   }, }); //xhr.abort()  終止請求 this.$store.state.requests.push(xhr);

利用superagent請求和終止

const request = require('superagent') var xhr = request('post','/api/xxxx/xxxx') xhr.send(data) //xhr.query(data) //get 傳參 xhr.end((err,res)=>{     ...todo... }) //xhr.abort() 終止請求 this.$store.state.requests.push(xhr)

利用axios請求

import axios from "axios"; var CancelToken = axios.CancelToken; var source = CancelToken.source(); axios   .get("/api/xxxxx/xxxxx", {     cancelToken: source.token,   })   .catch(function (thrown) {     if (axios.isCancel(thrown)) {       console.log("Request canceled", thrown.message);     } else {       // 處理錯誤     }   });  // 取消請求(message 參數是可選的) //source.cancel('Operation canceled by the user.');  this.$store.state.requests.push(source);

利用vue-resource請求

import Vue from "vue"; import req from "vue-resource"; Vue.use(req);  this.$http   .get("/someUrl", {     before(request) {       this.$store.state.requests.push(request);       //request.abort(); 終止請求     },   })   .then(     (response) => {       // success callback     },     (response) => {       // error callback     }   );

利用fetch請求

fetch貌似無法監控讀取進度和終端請求,他沒有 timeout 機制,沒有 progress 提示,但是可以利用 Promise 來實現終止

var _fetch = (function (fetch) {   return function (url, options) {     var abort = null;     var abort_promise = new Promise((resolve, reject) => {       abort = () => {         reject("abort.");         console.info("abort done.");       };     });     var promise = Promise.race([fetch(url, options), abort_promise]);     promise.abort = abort;     return promise;   }; })(fetch);  var xhr = _fetch("/api/xxx/xxxx", { methods: "POST", body: data }); xhr.then(   function (res) {     console.log("response:", res);   },   function (e) {     console.log("error:", e);   } ); xhr.abort(); //終止  this.$store.state.requests.push(xhr);

那么知道如何終止請求,然后也存儲了請求實例,剩下的只要監聽路由就行了

let router = new Router({....}) //每次路由改變之前終止所有的請求實例 router.beforeEach(function (to, from, next) {     this.$store.state.requests.forEach(xhr=>xhr.abort()) //終止所有的請求實例     this.$store.state.requests =[] //執行完清空,等待下一次的頁面的請求裝載     next() })

這種只是假設,自然請求完成之后最好,還是手動釋放樹的請求示例。例如ajax請求完成之后在complite里面splice store里面的實例。

[完]

推薦學習:vue.js教程

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩在线短视频| 中文字幕一区二区av| 久久一区欧美| 亚洲最新无码中文字幕久久| 国产一区二区中文| 亚洲伊人影院| 你懂的国产精品| 国产91久久精品一区二区| 老司机久久99久久精品播放免费| 欧美在线日韩| 欧美日韩精品免费观看视完整| 午夜在线精品偷拍| 日韩av一二三| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩专区欧美专区| 国产精品一区2区3区| 久久久久91| 欧美一区二区性| 在线 亚洲欧美在线综合一区| 中文欧美日韩| 日韩毛片网站| 久久久久久亚洲精品美女| 日韩欧美网址| 在线亚洲国产精品网站| 美美哒免费高清在线观看视频一区二区| 日韩一区二区三区精品| 日本久久二区| 精品国产aⅴ| 久久九九精品| 男人的天堂久久精品| 国产精品美女午夜爽爽| 午夜欧美巨大性欧美巨大| 午夜欧美理论片| 日本不卡视频在线| av中文字幕在线观看第一页| 午夜久久美女| 国产欧美一级| 在线日韩中文| 97久久中文字幕| 久久夜夜操妹子| 亚洲免费福利一区| 麻豆精品视频在线| 欧美日韩精品一本二本三本 | av在线日韩| 亚洲精品乱码| 午夜av不卡| 日韩精品国产欧美| 日韩在线综合| 亚洲精品日韩久久| 三级欧美韩日大片在线看| 美女性感视频久久| 欧美日韩激情在线一区二区三区| 91欧美极品| 九九精品调教| 日韩精品亚洲专区在线观看| 日韩国产激情| 日韩高清在线一区| 99久久夜色精品国产亚洲狼| 日韩中文一区二区| 日韩一区二区中文| 日本欧美大码aⅴ在线播放| 日韩不卡在线| 欧美天堂一区二区| 蜜臀av免费一区二区三区| 欧美日韩亚洲一区二区三区在线| 亚洲人成在线网站| 国产亚洲久久| 国产亚洲一区二区手机在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 久久中文欧美| 欧美日韩1区2区3区| 亚洲专区视频| 亚洲欧美日韩视频二区| 久久亚洲专区| 奇米777国产一区国产二区| 欧美日韩激情| 黄色在线观看www| 日本午夜精品一区二区三区电影 | 成人在线免费观看网站| 中文一区一区三区免费在线观 | 在线看片福利| 日韩高清二区| 在线亚洲精品| 色吊丝一区二区| 国产精品hd| 亚洲啊v在线免费视频| 欧美日韩一二| 红杏一区二区三区| 91成人在线精品视频| 亚洲免费网址| 一区二区三区视频免费观看| 精品一区视频| 日韩精品久久久久久久软件91| 99视频精品全部免费在线视频| 久久99高清| 免费久久99精品国产| 国产综合欧美| 精品捆绑调教一区二区三区| 狠狠久久伊人| 国产精品1luya在线播放| 日韩av资源网| 午夜亚洲福利| 婷婷精品在线| 伊人久久亚洲| 丝袜亚洲另类欧美| 在线视频免费在线观看一区二区| 久久国产欧美| 亚洲美女久久精品| 国产精品亚洲欧美一级在线| 亚洲精品三级| 狠狠爱www人成狠狠爱综合网| 99视频精品视频高清免费| 日本蜜桃在线观看视频| 精品国产aⅴ| 九九99久久精品在免费线bt| 国产精品亚洲一区二区在线观看| 日韩福利视频一区| 欧美一级全黄| 国产伦理久久久久久妇女| 国产伦精品一区二区三区视频| 欧美日韩调教| 国产精品最新自拍| 国产日韩精品视频一区二区三区| 91久久国产| 亚洲国产成人精品女人| 欧美日韩一二三四| 91精品福利| 亚洲成人免费| 在线成人直播| 免费美女久久99| 日韩精品1区2区3区| 日韩精品欧美精品| 欧美亚洲三级| 国产精品777777在线播放| 欧美激情综合| 福利视频一区| 成人久久一区| 亚洲在线观看| 免费中文字幕日韩欧美| 亚洲一区观看| 亚洲欧洲美洲国产香蕉| 日韩三区四区| 久久av免费看| 韩国久久久久久| 激情综合自拍| 一二三区精品| 国产精品极品在线观看| 国产成人精品三级高清久久91| 久久精品观看| 日本欧洲一区二区| 国产日韩视频在线| 国产理论在线| 亚洲黄页一区| 日本不卡高清| 国产欧美日韩视频在线| 福利视频一区| 中文国产一区| 国产日产精品_国产精品毛片| 成人午夜在线| 亚洲毛片视频| 国产一区二区三区四区| 激情综合自拍| 日韩精品久久理论片| 黄色网一区二区| 91久久黄色| 国产精品一区免费在线| 日本亚洲欧美天堂免费| 精品91福利视频| 黄色欧美日韩| 四虎国产精品免费久久| 国产成人免费精品| 中文久久精品| 久久香蕉网站| 国产手机视频一区二区| 国产精品videossex| 国精品一区二区三区| 欧美一区网站| 日韩免费在线| 婷婷亚洲成人| 日韩欧美中文| 亚洲精品视频一二三区| 福利精品一区| 日韩影院在线观看| 精品视频黄色| 日韩视频二区| 国产日韩一区二区三免费高清| 日本久久成人网| 国产日韩欧美一区二区三区在线观看| 99视频精品全国免费| 日韩精品2区| 国产日产精品_国产精品毛片| 久久久久久黄| 日韩午夜视频在线| 欧美日韩免费看片| 日韩精品免费视频人成| 久久视频一区| 国产精品亚洲欧美日韩一区在线 | 午夜在线一区二区| 欧美aaaaaa午夜精品| 99视频精品|