如何封装一个防抖函数

什么是函数防抖(debounce)

函数防抖(debounce)是为了限制函数的执行频次,以优化函数触发频率过高导致的响应速度跟不上触发频率,出现延迟,假死或卡顿的现象。

防抖原理:

利用延时器在用户动作停止后一定时间再执行函数,如果一定时间内多次执行则把上次的清除

用户在0.5s内多次点击按钮也只会执行一次success函数
//防抖函数
function debounce(fn,delay){
    let timer = null
    return ()=>{
        clearTimeout(timer)
        timer = setTimeout(()=>{
            fn()
        },delay)
    }
}

function success(){
    console.log('提交成功');
}
let aaa = debounce(success,500)
// console.log(aaa);

let btn = document.querySelector('.btn')
btn.addEventListener('click',aaa)

你可能感兴趣的:(如何封装一个防抖函数)