防抖-节流

// 节流  规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。
    jieliu() {
      // 定时器
      //1. 当 timeOut = null 说明我们这时候没有事情出发,是等待状态
      let timeOut = this.timeOut;
      // 这个时候 timeOut 存在说明我们有事件在执行我们就不在重复执行
      if (timeOut) {
        return;
      }
      //2. timeOut= setTimeout(()=>{},1000) timeOut = 14;
      this.timeOut = setTimeout(() => {
        this.timeOut = null;
        // 执行我们想要的函数
        this.hGetSuggestion();
      }, 3000);
      //3. timeOut = 14; timeOut != null 进不去
      //4. setTimeout 里面  timeOut = null
      //5.  当你设定一个时间之后 ,函数执行的时间短就是这个时间
    },
//  防抖  在事件被触发n秒后再执行回调函数,如果在这n秒内又被触发,则重新计时。
    fangdou() {
      let timeOut = this.timeOut;
      if (timeOut) {
        // 区别
        clearTimeout(this.timeOut);
      }
      this.timeOut = setTimeout(() => {
        // 执行我们想要的函数
        this.hGetSuggestion();
      }, 3000);
    }
  }

 

posted @ 2020-09-25 11:32  queenDream  阅读(171)  评论(0编辑  收藏  举报