| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 不知道如何取消axios请求的小伙伴看这里【canceltoken】 -> 正文阅读 |
|
[JavaScript知识库]不知道如何取消axios请求的小伙伴看这里【canceltoken】 |
还不知道axios如何取消请求吗?还在为了请求没必要继续但是还是在发送而苦恼吗?看下面解决你的烦恼: 首先我们要明确:cancelToken是axios用来取消请求的API。 那为什么要取消呢?是由于浏览器的请求的响应时间存在不确定性,请求次数过多可能较早发起的请求会比较晚的响应。所以要为了提升页面性能减少不必要的等待,我们需要取消不需要等待的较早的请求。 那种过多的请求是无意义且浪费性能的呢?比如: (1)菜单的路由页面跳转、tab栏的高频切换; (2)搜索框的change事件模糊匹配时,短时间发送多个ajax请求,返回数据并不是最想要的。 当然了,还有很多的适用场景哦!了解的可以在评论区下方发出来,供大家学习~ 注意:cancel token 并不是意义上的取消,请求还是会到服务器,只是浏览器进行处理。那如何创建cancelToken呢?具体呢有两种写法:第一种:使用CancelToken.source工厂方式创建canceltoken:
第二种:通过传递一个executor函数到CancelToken的构造函数来创建cancelToken
那么我们在项目中如何应用来取消重复的请求呢?我们可以在executor函数中将当前的请求地址,添加到一个数组中。然后等下次请求的时候,判断当前的请求是否存在:已经存在则直接取消。 这里需要注意:只使用url作为key,不惧有唯一性,也并不准确;所以我们需要使用当前请求的全部信息去生成唯一的key。
注意: (1)第一条请求永远不会被取消,因为还未将其添加到pendingList中存储。 (2)最好在路由跳转前判断如果不是当前的路由,移除当前pendingList等待的请求。 看了如何在项目中应用,还有兴趣的话跟我一起了解一下源码鸭!
我大概对于axios的cancelToken也就这些储备可以和大家分享了。有了解更多更清楚的大佬,欢迎在评论区指导哦!我定当虚心受教! |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 2:50:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |