# 手写节流防抖
# 节流 (throttle)
一段时间 wait
内只执行一次函数,当时间间隔过去,后才继续执行。举个例子,wait
是 500ms
。100ms
时触发了一次函数,那么意味着 100ms
到 600ms
区间内无论在怎么触发函数,都只会在时间到的时候即 600ms
执行一次。从此我们可以知道,执行时间点是 wait
时间区间内 首次
触发时间点 + wait
。
# 防抖 (debounce)
在函数触发后等待一段时间 wait
内才执行,如果在这段时间间隔内再次触发,则重新计时。举个例子, wait
是 500ms
。100ms
时触发了一次函数,正常就是在 600ms
时候真正触发函数逻辑。假设现在 300ms
时再次触发函数,那就又要等 500ms
即 800ms
的时候才执行函数逻辑。从此我们可以知道,执行时间点是 wait
时间区间内 最后一次
触发时间点 + wait
。