您的位置:首页 > 文旅 > 旅游 > 链接提交百度站长平台_榆林市网站建设_搜索引擎优化网站排名_关键词排名优化工具

链接提交百度站长平台_榆林市网站建设_搜索引擎优化网站排名_关键词排名优化工具

2024/12/23 9:20:58 来源:https://blog.csdn.net/forgiveForever/article/details/143352187  浏览:    关键词:链接提交百度站长平台_榆林市网站建设_搜索引擎优化网站排名_关键词排名优化工具
链接提交百度站长平台_榆林市网站建设_搜索引擎优化网站排名_关键词排名优化工具

竟态问题

在我们日常开发经常遇到一些竟态问题

例子1

现象1

表格分页,如果设置请求loading,
先切换到分页第99页,迅速在又切换到第1页,最后列表显示的是第99页数据。

原因

由于第99页请求数据花费时间可能500ms,第1页数据只需要100ms,第1页数据请求比较快,第99页数据返回慢,所以第99页数据会覆盖第一页数据。

现象2

表单具有提交按钮,如果没有设置提交请求loading时,连续点击两次,就会触发两次表单提交

原因

请求没有做拦截,第一次请求没有结束,又能触发请求

axios中如何简单防止竟态问题

【注】这里只是简单做了防止重复点击

在axios 请求拦截器中可以设置 cancelToken

import axios from 'axios';const cusAxiosFERD = axios.create({});
const cancelToken = axios.CancelToken;
const source = cancelToken.source();
const cacheRequest = {};
// 需要处理竞态问题的 接口
const urls = ['/xxx'];
cusAxiosFERD.interceptors.request.use( (config) => {const curUrl = config.url;if(urls.some(u=>curUrl.indexOf(u) > -1 ) && config.headers.isLimit){cacheRequest[curUrl] && cacheRequest[curUrl]();config.cancelToken = new axios.CancelToken(function executor(c) {cacheRequest[curUrl]  = c;})}return config;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com