求教axios结合throttle的写法

发布于 2022-09-06 20:49:34 字数 305 浏览 16 评论 0

使用场景:vue + axios, 弹窗点击按钮 > 发送请求 > 弹窗关闭,
遇到问题:连续点击按钮,在弹窗关闭前会发送多个相同的接口,
解决方案:点击时,给按钮一个disabled的标记来控制按钮

问题:

1.如果click事件挂载在div,该怎么解决(div无disabled属性)
2.考虑采用axios结合throttle的思想,如何在全局层面上改造axios

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

箹锭⒈辈孓 2022-09-13 20:49:35

要全局修改axios的话,可以参考楼上的,把请求标记requesting,存在全局状态中,如果有用vuex就存在state里面,然后通过axios的拦截器,在请求之前和请求结束后,改变requesting。

但是这种做法的话,你只能同时进行一个请求,如果遇到要同时进行两个以前的请求,就会失败。

用户体验比较好的的做法是请求的时候,弹出一个类似加载中的动画浮层,让用户无法多次点击按钮,请求结束后隐藏。

—━☆沉默づ 2022-09-13 20:49:34
data() {
  return {
    requesting: false
  }
},
methods: {
  onButtonClick() {
    if (!this.requesting) {
      request().then(() => { this.requesting = false })
      
      this.requesting = true
    }
  }
}

最简单的方法,在弹框按钮回调函数里判断下是否已经发送了请求

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文