vue 接口访问——鼠标快速点击,多次访问问题
场景如下:
表单填写完成后,快速点击两下提交按钮,vue中调用了2次该接口访问,这个问题,有没有高手有解决办法的,最好能够一劳永逸,因为一个项目有很多个这样的场景。在线等待。
我想要达到的目的:
1.快速点击提交按钮是用户误操作,因此,只调用一次接口。
2.由于类似的提供功能较多,是否有办法能够有个公共的处理方法,统一处理(这里我暂时没有思路)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
请求方法加锁。
以下代码来自于一个旧回答,题主要求是不同组件同时调相同接口均能返回,但只发一个请求。
你的需求改改就行。
没有封装请求方法的,可以劫持xhr来避免多处修改
点击后将button的
disabled
设置为true
,接口成功后再设置为false
。使用element-ui的话, 可以设置'loading',给button加个加载圈圈,接口调用成功后
loading
设置为false
可以搜索一下
防抖
和截流
更新了问题, 补充一下
这种情况, 一般是给按钮加一个
锁
, 用户点击第一次就上锁
, 请求成功后再解锁. 可以配合截流
函数, 规定多少时间内只能提交一次.这篇文章介绍了防抖和截流. 防抖你应该用不上. 截流可以拿来用用
以前碰到这样类似的问题。
第一次点击以后,给按钮添加disabled,处理结束以后再删除disabled
可以在封装那里截的,保存上一次的请求信息,然后同一时间段请求的信息一样就返回 return false;axios可以做全局拦截的