前言
防抖(Debounce)和节流(Throttle)都是用来控制某个函数在一定时间内触发次数,两者都是为了减少触发频率,提高性能,毕竟JS操作DOM对象的代价还是十分昂贵的
应用场景:处理一些频繁触发的事件,例如mousedown、mousemove、keyup、keydown等,避免浪费资源,提升前端性能
定义
防抖:单位时间内,如果频繁去触发一个事件,以’最后一次’触发为准
节流:单位时间内,频繁触发事件,只执行一次
防抖场景
输入框输入事件流程:
1.声明一个全局变量,记录计时器id
2.每触发一次事件,先清空上一次计时器,然后把本次事件代码放入到计时器里
<input type="text" name="" id="inp">
let inp