前端防抖

防抖

防抖是一种常用的前端优化技术,它可以有效地减少在用户频繁触发某些事件(比如点击按钮、鼠标滚动、窗口缩放等)时产生的多次执行函数的问题。

防抖的实现原理

定时器实现防抖是在事件触发后设定一个延时时间,在这个时间内如果再次触发了同样的事件,就会重新开始计时,直到延时时间结束后才会执行函数。

防抖函数

function debounce(fn, wait=500) {
    let timeout = null;
    return function() {
        if (timeout != null) {
            clearTimeout(timeout);
        }
        timeout = setTimeout(fn, wait);
    }
}

注意:debounce()返回的是一个函数,一个完成的执行应该是:debounce()()

分享到