前言:

在项目中经常有一些场景会连续发送多个请求,而异步会导致最后得到展示的结果可能不是最后一次发送请求返回的结果,且对性能也有非常大的影响。

场景:

列表式切换商品,有时候上一次请求的结果非常慢,而我又点了另外一个商品,这时候第二次请求的接口比上一次快,那么就点击第二次的商品看到的信息却是上一次的商品信息,这样的用户体验极其不好;

解决方案:

在点击下一个商品的时候,将上一个商品请求的接口中断取消请求。

代码如下:

import axios from 'axios'

export default {

data() {

return {

source: null,

}

},

methods: {

cancelRequest() {

if (typeof this.source === 'function') {

this.source()

}

},

getProductPackageInfo() {

const _this = this;

this.cancelRequest();

// 取消上一次请求

axios({

method: 'post',

url: this.secondURL.getProductPackageInfo,

data: { name: '小白' },

cancelToken: new axios.CancelToken((c) => {

_this.source = c

}),

})

.then((res) => {

// 返回数据进行操作

}).catch((err) => {if (axios.isCancel(err)) {

console.log('Rquest canceled', err.message);

//请求如果被取消,这里是返回取消的message

} else {

console.log(err);

}

})

},

vue 断开正在发送的请求_vue 发送请求频繁时取消上一次请求相关推荐

  1. vue 生命周期 返回不触发_Vue生命周期activated之返回上一页不重新请求数据操作...

    activated: 英文原意:使活动.触发 在Vue的生命周期函数中,这个好像用的不是特别多?(也许只是在我的工作中这个用的不多,或者说叫几乎不用这个) 一.需求 前不久在项目中有这样一个需求: 在 ...

  2. Vue使用axios取消上一次请求

    项目需求:列表式切换商品,有时候上一次请求的结果非常慢,而我又点了另外一个商品,这时候第二次请求的接口比上一次快,那么就点击第二次的商品看到的信息却是上一次的商品信息,这样的用户体验极其不好: 解决方 ...

  3. vue组件一直注册不了_Vue注册组件命名时不能用大写的原因浅析

    这段时间一直在弄vue,当然也遇到很多问题,这里就来跟大家分享一些注册自定义模板组件的心得. 首先"VUE注册组件命名时不能用大写"其实这句话是不对的,但我们很多人开始都觉得是对的 ...

  4. axios请求发送两次请求_vue使用axios发送请求,都会发送两次请求

    vue 使用axios,每次的请求都会发送两次,第一次的请求头为options CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sha ...

  5. Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持--解决办法

    Vue通过Axios向后台发送Post请求,浏览器Console提示405,后台显示Get请求不支持–解决办法 问题场景: axios默认是发送get请求,我要给后台发送一组用户填写的表单数据,逻辑简 ...

  6. vue中使用axios请求接口,请求会发送两次

    vue中使用axios请求接口,请求会发送两次的问题 浏览器分为简单请求以及非简单请求: 解决方案: 跨域请求需要先发一次Option预请求,OPTIONS是检验是否允许跨域的,如果不希望OPTION ...

  7. vue 获取url地址的参数_Vue 网络请求框架 axios 使用教程

    点击上方"代码集中营",设为星标 优秀文章,第一时间送达! 前期回顾 1. Vue 学习入门指南 2. Vue 入门环境搭建 3. Visual Studio Code 使用指南 ...

  8. vue 无法进入response拦截器_Vue添加请求拦截器

    一.现象 统一处理错误及配置请求信息 二.解决 1.安装 axios  , 命令: npm install axios --save-dev 2.在根目录的config目录下新建文件 axios.js ...

  9. 如何在HTTP POST请求中发送参数?

    本文翻译自:How are parameters sent in an HTTP POST request? In an HTTP GET request, parameters are sent a ...

最新文章

  1. 快车 FlashGet 3.1 修正版(1057)
  2. 详解Printjack打印机攻击
  3. 用Numpy搭建神经网络第二期:梯度下降法的实现
  4. java ora 00911_ORA-00911错误
  5. python程序设计sgnx_Python中符号函数的数值积分
  6. hibernate中的一对多和多对多的映射关系
  7. mysql多类型查询_MYSQL中的多类型查询及高级查询操作
  8. git 从远程git服务上拉代码 git服务器非默认端口
  9. html页面显示代码插件,客户端显示web网页支持html5的第三方内核插件
  10. AMPL实现中国邮递员问题,你get到了吗
  11. 实测:游戏情景中,远控软件实力如何?一篇告诉你ToDesk的强大之处
  12. 关于DEV-c++ 运行窗口闪退的解决办法
  13. Java中Switch-Case用法小结
  14. 苹果x人脸识别突然失灵_iPhone手机触摸屏失灵怎么办?成都苹果维修点教你轻松解决...
  15. php怎么替换斜杠,PHP 反斜杠如何替换掉?
  16. 第12课:JSP动作 Jsp include动作(JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  17. 华为 Mate40系列发布,你的5G绝版手机来了!
  18. flutter从入门到熟练全套学习视频教程
  19. MySQL 基础知识入门教程
  20. PCA针对TE过程(田纳西伊斯曼过程)数据的故障监测处理

热门文章

  1. pdf温度记录仪开发_蔬菜、鲜果、奶制品冷链温度监控系统监控食品让客户放心...
  2. Asterisk realtime 之SIP用户动态写入mysql 数据库
  3. mysql修改语句_序言:MySQL与Navicat安装Tips
  4. revo uninstaller pro 序列号_iPhone12/pro已下架,在天猫
  5. c++ primer 第六版 pdf_A3N630 塑壳断路器如何更换.pdf
  6. LSGO软件技术团队对外技术交流
  7. 【转】程序在内存中的分布
  8. ABP入门系列(15)——创建微信公众号模块
  9. 【转】IsCallBack属性和IsPostBack属性有什么区别?
  10. 一步步编写操作系统 37 一级页表与虚拟地址2