实现节流(_.throttle())-简单版

2020-11-21  本文已影响0人  凉城十月
方法1: 使用underscore.js的throttle方法,设定时间间隔触发事件
_.throttle( func, wait, [options]){
  
}

创造并返回一个像节流阀一样的函数,当重复调用函数的时候,至少每隔wait毫秒调用一次该函数。

方法2:自己实现简单的throttle
function throttle(func, wait){
  let prev, timer
  return function fn(){
    let curr = Date.now()
    let diff = curr - prev
     //如果是第一次或者是间隔的时间比设定的时间长
    if(!prev || diff >= wait){
    //那么就直接执行
      func()
      prev = curr
    }else if(diff < wait){ //如果间隔的时间比设定的时间短,那么就等到设定的时间再执行
      window.clearInterval(timer) //每次之前都将定时器打破
      timer = setTimeout(fn, wait - diff)
    }
  }
}
上一篇 下一篇

猜你喜欢

热点阅读