在前端开发中有一部分的用户行为会频繁地触发事件执行,而对于 DOM 操作、资源加载等耗费性能的处理,很可能导致界面卡顿,甚至浏览器的崩溃,函数节流(throttle
)和函数防抖(debounce
)就是为了解决类似需求应运而生的。
函数节流
函数节流就是预定一个函数只有在大于等于执行周期时才执行,周期内调用不执行。好像水滴攒到一定重量才会落下一样。场景:窗口调整(resize)、页面滚动(scroll)、抢购疯狂点击(mousedown)。
1 | function throttle (fn, wait = 0) { |
函数防抖
函数防抖就是在函数需要频繁触发情况时,只有足够空闲的时间,才执行一次。好像公交司机会等人都上车后才出站一样。场景:实时搜索(keyup)、拖拽(mousemove)
1 | function debounce(fn, wait = 0) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 紫升的博客!
评论