js中防止短时间多次请求接口-截流问题

方法一:

<button @click="submit"  :disabled="isDisable">点击</button>

data(){
   return{
      isDisable:false
   }
}

methods:{
    submit(){
       this.isDisable=true
       setTimeout(()=>{
           this.isDisable=false   //点击一次时隔两秒后才能再次点击
       },2000)
    }
}

方法二:

<el-button @click="throttle()">测试</el-button>

export default {
    data(){
        return {
            lastTime:0 //默认上一次点击时间为0    
        }
    }
}

methods:{
    throttle(){
        //获取当前时间的时间戳
        let now = new Date().valueOf();
        //第一次点击
        if(this.lastTime == 0){
            console.log('触发事件');
            this.lastTime = now;
        }else{
            if((now-this.lastTime) > 2000){
                //重置上一次点击时间,2000是我自己设置的2秒间隔,根据自己的需要更改
                this.lastTime = now;
                console.log('间隔大于2秒,触发方法');
                //添加自己要调用的方法
            }else{
                console.log('不触发');
            }
        }
     },
}

 

注:还可以使用后端返回的数据来控制

 

posted @   JackieDYH  阅读(173)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示