函数节流(throttle)与函数去抖(debounce)
以下场景往往由于事件频繁被触发,因而频繁执行DOM操作、资源加载等重行为,导致UI停顿甚至浏览器崩溃。
window对象的resize、scroll事件
拖拽时的mousemove事件
射击游戏中的mousedown、keydown事件
文字输入、自动完成的keyup事件
实际上对于 window 的 resize 事件,实际需求大多为停止改变大小n毫秒后执行后续处理;而其他事件大多的需求是以一定的频率执行后续处理。针对这两种需求就出现了 debounce 和 throttle 两种解决办法。