对于一些频繁发生的事件(如:resize, mousemove, key*, scroll等),简单地给它们设置监听函数会有一些性能上的影响,特别是在监听函数中有长耗时的操作时,将可能出现页面卡顿的现象。防抖函数和节流函数就是针对此问题而提出的解决方案。
防抖函数,其目的是将事件处理逻辑往后延迟,一般是在事件停止触发之后延迟多少时间再执行,当然也可以在事件刚开始触发时就执行一次,直到事件结束整个时间内不触发第二次。
节流函数,其目的是保证多少间隔时间内,监听函数一定会执行一次。
更多详情参考:
http://bubkoo.com/2017/01/18/debouncing-throttling-explained-examples/