节流&防抖

2年前 (2022) 程序员胖胖胖虎阿
188 0 0

/**

  • 节流和防抖
  • 两者的区别
  • 防抖:防止抖动“你先抖着,啥时候停下了,在执行下一步”,做完某一个操作时,限值执行次数,多次密集的触发只执行一次
  • 节流:节省交互沟通,“别急,一个一个来,按时间节奏来,插队无效”,进行某一个操作时, 限制执行频率,有节奏的执行
  • 节流关注“过程”,防抖关注“结果”
  • 分别用于什么场景
  • 防抖: 输入框,请求按钮
  • 节流:拖拽,滚动
    */

function debounce(callback, delay=300) {
let timer = null;
return () => {

if(timer) {
  clearTimeout(timer);
  timer = setTimeout(() => {
    callback();
    timer = null;
  }, delay)
}

}
}

function throttle(callback, delay=300) {
let timer = null;
return () => {

if(timer) return
timer = setTimeout(() => {
  callback();
  timer=null;
}, delay)

}
}

版权声明:程序员胖胖胖虎阿 发表于 2022年10月4日 下午2:56。
转载请注明:节流&防抖 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...