乐趣区

关于前端:性能提高防抖和节流

防抖:如果短时间内屡次触发同一事件,只会执行一次函数。

在这里咱们把这个工夫距离设置为 1000ms,如果 1000ms 内用户欸有再次触发事件,就执行函数;如果 1000ms 内再次触发事件,咱们就把以后的计时勾销,从新开始计时。

防抖函数:

debounce(func,delay){
    let timer = null;
    
    return function(...args){if(timer){clearTimeout(timer)}
        
        timer = setTimeout(() => {func.apply(this,args)
        },delay)
    }
}

节流:如果咱们在短时间内大量触发同一事件,那么在函数执行一次当前,该函数在指定的工夫内不再工作,直至过了这段时间才从新失效。(每隔一段时间执行一次)

节流函数:

    throttle(func,delay){
        let timer = null;
        
        return function(...args){if(timer) return 
            timer = setTimeout(() => {func.apply(this,args)
            },delay)
        }
    }
退出移动版