fangdou

防抖函数

   function ajax(context) {
        console.log('ajax content' + context)
    }
    // 防抖函数,设置延迟执行时间delay和被处理的函数fn
    function debounce(fn, delay){
        return function(...rest){
            let that = this
            let _args = rest
            //清除掉定时器中函数
            clearTimeout(fn.id)
            //delay之后执行函数
            fn.id = setTimeout(()=>{
                fn.call(that,_args)
            },delay)
        }
    }
    let inputb = document.getElementById('debounce')
        let debounceAjax = debounce(ajax,500)

    inputb.addEventListener('input',function(e){
        debounceAjax(e.target.value)
    })

    //防抖函数就是在delay的时间间隔内,如果再次出发函数,会重新计时
    //防抖函数就像是游戏中法师发技能时候的读条,技能没读完再按技能就会重新读条

你可能感兴趣的:(js,js)