请问有没有办法用vue或者原生JS将多个页面统一进行防止重复执行点击事件(在不侵入源事件方法的前提下,因为页面太多是在改不过来),或者进行统一节流处理
4条回答 默认 最新
- 技术专家团-剑客 2021-09-23 14:44关注
如果点击事件都有axios请求,你防止的是重复的后端请求,如果是vue单页面项目可以考虑如下的方案:
1,取消重复请求,具体方法如下,基本思路是缓存,请求结束之后清空缓存/** * 全部请求拦截器处理 */ const pendingRequests = new Map() myAjax.interceptors.request.use(function (config) { const params = config.params || config.data const requestKey = `${config.url}/${JSON.stringify(params)}&request_type=${config.method}` if (pendingRequests.has(requestKey)) { config.cancelToken = new axios.CancelToken((cancel) => { // cancel 函数的参数会作为 promise 的 error 被捕获 cancel(`重复的请求被主动拦截: ${requestKey}`) }) } else { pendingRequests.set(requestKey, config) config.requestKey = requestKey } return config }, function (error) { pendingRequests.clear() return Promise.reject(error) } ) /** * 响应拦截器 */ myAjax.interceptors.response.use(response => { const requestKey = response.config.requestKey pendingRequests.delete(requestKey) return response }, error => { pendingRequests.clear() return Promise.reject(error) })
或者将问题阐述具体一些。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元