云迈博客

您现在的位置是:首页 > 前端技术 > 正文

前端技术

函数防抖和节流

袁叶2021-02-23前端技术364
1.防抖防抖就是将一段时间内连续的多次触发转化为一次触发。一般可以使用在用户输入停止一段时间过后再去获取数据,而不是每次输入都去获取,如下图:原理很简单,主要是判断是否到达等待时间,如果没到达的话就

1.防抖
防抖就是将一段时间内连续的多次触发转化为一次触发。一般可以使用在用户输入停止一段时间过后再去获取数据,而不是每次输入都去获取,如下图:原理很简单,主要是判断是否到达等待时间,如果没到达的话就继续加入任务队列等待执行。

function debounce (f, wait) {
  let timer
  return (...args) => {
    clearTimeout(timer)
    timer = setTimeout(() => {
      f(...args)
    }, wait)
  }
}

2.节流
可以将一些事件降低触发频率。比如懒加载时要监听计算滚动条的位置,但不必每次滑动都触发,可以降低计算的频率,而不必去浪费资源。

function throttle (f, wait) {
  let timer
  return (...args) => {
    if (timer) { return }
    timer = setTimeout(() => {
      f(...args)
      timer = null
    }, wait)
  }
}

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~