【JS】Axios取消未完成请求解决Tab频繁切换数据问题

一、场景描述 

 Tab切换频率较低、数据返回速度理想的情况下,几乎不用考虑这个问题。切换频率高如果不处理未完成的请求不仅会严重影响页面性能,由于浏览器并发请求限制,也可能会造成后续请求超时。另外一个较为直观的业务影响是,频繁切换也会造成数据渲染错误,如下图:当前已切换到待付款,但是渲染的数据是前面请求的已完成的数据。

二、解决方案原理:

 利用 Javascript XMLHttpRequest 对象上的 abort 方法,终止已发出的请求。MDN上关于此方法的解释:当一个请求被终止,它的  readyState 将被置为 XMLHttpRequest.UNSENT (0),并且请求的 status 置为 0。

而我们业务里的场景,需要在发出请求时,收集请求集合,存储一个cancel函数。然后在请求前遍历这个集合并调用cancel函数,取消在此之前的所有请求。

三、axios CancelToken用法

那么在axios中怎么中止http请求?先上axios官方文档的用法。Tips

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值