防抖/节流的实现

83 阅读1分钟
什么是防抖

通俗来说就是当一个事件一直处于频繁触发的情况下,禁止触发,直到频率降低到规定的程度,才允许触发。

实现
  1. 触发事件时,给一个setTimeout定时器来延迟触发
  2. 每次点击清除并重置定时器
  3. 使用闭包来存储定时器
什么是节流

通俗的来说就是一个事件不停的触发时,控制它在每个时间段只触发一次。

实现
  1. 设置一个变量scrollTimer,设置为null。
  2. 每次触发事件判断scrollTimer是否为null、如不为空则清除定时器。
  3. 设置setTimeout定时器在规定时间后才能进入执行函数再次触发、并将其赋给变量scrollTimer。
  4. 使用闭包存储变量