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() 终止请求

t

你可能感兴趣的:(vue离开当前路由销毁当前路由)