innerWang / blogs

1 stars 0 forks source link

函数节流和函数防抖 #10

Open innerWang opened 5 years ago

innerWang commented 5 years ago

1. 函数节流

函数节流是指,一定时间内最多执行一次。可以理解为“冷却时间”。 其要点是,声明一个变量当标志位,记录是否可运行。

let canRun = true
button.addEventListener('click',()=>{
   if(!canRun) return;
   fn();
   canRun = false;
   setTimeout(()=> {
     canRun=true
   },3000);
}) 

2. 函数防抖

函数防抖是指,延迟执行。 可以按照如下理解,外卖员收到一个派送订单,如果5s内没有人点单,他就去送,如果5s内有人点单,则重新继续等待5s。 其要点是,若有动作,则需要清除定时器,重新计时。

let timer = null
button.addEventListener('click',()=>{
  clearTimeout(timer);
  timer = setTimeout(()=>{
     fn()
  },5000)
})