SPA时代经常会遇到当前页面未加载完毕时跳转路由或者返回操作, 但是通过network会发现, 若网络环境较差的情况下, 会一直pending, 切换路由后在network中添加新的请求但是正在pending的请求依然存在. 当我们在项目中做了一个上拉加载分页的时候会一直加载中, 用户等待不耐烦后可能会主动触发返回操作, 但是此刻即使用户触发返回操作, 加载分页的请求还是存在, 页面还是会一直提示加载中, 直到该请求加载成功或超时才肯罢休

若想测试该效果的话, 大家可以通过chrome移动端模拟器进行模拟, 设置网络环境为Low-end mobile
低网速模拟

这时刷新, 将会看到已发出的请求会得到很漫长的响应, 这时我们进行路由更改操作, 会看到如下图
pending

这时我们想要达到的效果是这样的
取消请求

实现的思路是将cancel放置于全局变量的数组中, 可以挂在至window对象上或Vue示例上, 根据自己的情况去设计
关键代码

接着在路由切换时进行操作
取消请求以及删除

如有更完美的想法欢迎指教, 如有不正确之处请指出, 多谢

Logo

前往低代码交流专区

更多推荐