没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
前端做后台管控系统,在某些接口请求时间过长的场景下,需要防止用户反复发起请求。 假设某场景下用户点击查询按钮后,后端响应需要长时间才能返回数据。那么要规避用户返回点击查询按钮无外乎是让用户无法在合理时间内再次点击按钮。实现方式也有好几种: 1、在按钮点击发起请求后,弹个蒙层,显示个loading,等请求数据返回了将蒙层隐藏掉。 2、在按钮点击发起请求后,将按钮禁用掉,同样等数据返回了将按钮禁用解除。 以上是比较常见的2种方案。 实现上最简单的肯定是在需要的页面种在请求前和拿到数据后,单独处理。这种方案优点仅仅是简单,但是每个需要处理的页面都要单独写一串重复的代码,哪
资源推荐
资源详情
资源评论
Vue 利用指令实现禁止反复发送请求的两种方法利用指令实现禁止反复发送请求的两种方法
前端做后台管控系统,在某些接口请求时间过长的场景下,需要防止用户反复发起请求。
假设某场景下用户点击查询按钮后,后端响应需要长时间才能返回数据。那么要规避用户返回点击查询按钮无外乎是让用
户无法在合理时间内再次点击按钮。实现方式也有好几种:
1、在按钮点击发起请求后,弹个蒙层,显示个loading,等请求数据返回了将蒙层隐藏掉。
2、在按钮点击发起请求后,将按钮禁用掉,同样等数据返回了将按钮禁用解除。
以上是比较常见的2种方案。
实现上最简单的肯定是在需要的页面种在请求前和拿到数据后,单独处理。这种方案优点仅仅是简单,但是每个需要处理
的页面都要单独写一串重复的代码,哪怕利用mixin也要多不少冗余代码。
如果是利用指令的方式仅仅需要在合适的地方加上个一条v-xxxx,其他都在指令的逻辑内统一处理。
以第二种方式为例:
clickForbidden.js
let forbidClick = null;
export default {
bind(e) {
const el = e;
let timer = null;
forbidClick = () => {
el.disabled = true;
el.classList.add('is-disabled');
timer = setTimeout(() => {
el.disabled = false;
el.classList.remove('is-disabled');
}, 3000);
};
el.addEventListener('click', forbidClick);
},
unbind() {
document.removeEventListener('click', forbidClick);
},
};
指令的逻辑很简单,当按钮插入到DOM节点后,添加一个监听click的事件,当按钮点击后,就将按钮禁用,并加上
一个禁用样式,并在3s后将该按钮解除禁用。
再考虑请求,以axios为例:
api.js
import axios from 'axios';
export baseURL = 'xxxx';
const api = axios.create({
baseURL,<br data-filtered="filtered"> timeout: 3000,
});
/* 记录当前请求是否完成 */
window.currentResq = {
done: true,
config: {},
};
api.interceptors.request.use(function(config) {
clearTimeout(resqTimer);
window.currentResq = {
done: false,
config,
};
// 接口请求时长超过3s,则视为完成,不管请求结果成功或失败
resqTimer = setTimeout(() => {
window.currentResq = {
done: true,
config: {},
};
}, 3000);
});
api.interceptors.response.use(function(response) {
const { config } = window.currentResq;
资源评论
weixin_38663837
- 粉丝: 4
- 资源: 946
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Matlab根据flac、pfc或其他软件导出的坐标及应力、位移数据再现云图 案例包括导出在flac6.0中导出位移的fish代码(也可以自己先准备软件导出的坐标数据及对应点的位移或应力数据,可根据需
- 拳皇97.exe拳皇972.exe拳皇973.exe
- 捕鱼达人1.exe捕鱼达人2.exe捕鱼达人3.exe
- 医疗骨折摄像检测29-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma数据集合集.rar
- ks滑块加密算法与源代码
- 医护人员检测23-YOLOv8数据集合集.rar
- 1.电力系统短路故障引起电压暂降 2.不对称短路故障分析 包括:共两份自编word+相应matlab模型 1.短路故障的发生频次以及不同类型短路故障严重程度,本文选取三类典型的不对称短路展开研究
- C#连接sap NCO组件 X64版
- 开源基于51单片机的多功能智能闹钟设计,课设毕设借鉴参考
- 深度强化学习电气工程复现文章,适合小白学习 关键词:能量管理 深度学习 强化学习 深度强化学习 能源系统 优化调度 编程语言:python平台 主题:用于能源系统优化调度的深度强化学习算法的性能比较
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功