防抖和节流是前端开发中常用的两种性能优化技术。
防抖: (Debouncing) 的含义是指在一定时间内,多次触发同一个事件,只执行最后一次操作。
节流 (Throttling) 的含义是指在一定时间内,多次触发同一个事件,只执行第一次操作。
在防抖函数和节流函数中,都使用了闭包来保存定时器变量 timer 和传入的函数 fun;不同的是,防抖函数中中先清除定时器,再setTimout其他操作;而在节流函数中,先判断定时器是否存在,只有不存在时才做继续setTimout;
场景:浏览器的resize,scroll,拖拽时的mouse move,oninput等