防抖与节流

2021-08-28  本文已影响0人  townYouth

防抖:通过setTimeOut的方式,在一定时间间隔内,将多次触发变成一次触发

function debounce (fn, wait = 1000) {
  var timer = null
  return function () {
    if (timer) {
      clearTimeout(timer)
    } else {
      fn.apply(this, arguments)
    }
    timer = setTimeout(() => {
      timer = null
    }, wait)
  }
}

节流:减少一段时间的触发频率

function throttle (fn, delay = 1000) {
  var begin = 0
    return function () {
      const cur = Date.now()
      if (cur - begin > delay) {
        fn.apply(this, arguments)
        begin = cur
      }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读