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 @ 2022-11-24 20:54  JackieDYH  阅读(171)  评论(0编辑  收藏  举报  来源