就是指连续触发事件但是在设定一段时间内中只执行最后一次。
例如:
设定1000毫秒执行,当你触发事件了,他会1000毫秒后执行,但是在还剩500毫秒的时候你又触发了事件,那就会重新开始1000毫秒之后再执行
- 记忆核心:从新开始
1.1、防抖应用场景:
- 搜索框搜索输入
这个是比较典型的案例。在我们输入搜索框的时候,我们不能每次进行输入的时候都要去发送请求,再返回我们数据,会非常的繁琐,那我们这可以设定一个时间,在我们多少秒之后呢再发送请求,所以呢频次不要太高 - 文本编辑器实时保存
这个也是没有必要每次输入都要保存,而是设定一个时间,多少时间之后呢再自动保存
1.2、防抖代码实现思路?
回答:利用定时器定时器基本靠谱了
let timerId=null
// 首先把定时器声明为null
document.querySelector('.ipt').onKeyup=function(){
//onkeyup键盘抬起事件
//防抖
if(timerId !==null){
clearTimeout(timerId)
}
//键盘抬起的时候我们先来判断是不是null,如果不是null我就清除定时器
//首次执行这个条件是不满足的,所以不清除定时器,执行下面代码
timerId =setTimeout(()=>{
console.log('我是防抖')
},1000)
//定时器一旦执行,就会返回给我们一