美文网首页
防抖与节流记录

防抖与节流记录

作者: leesession | 来源:发表于2020-05-08 17:58 被阅读0次

1.防抖
应用场景:输入框不断输入时、window不断触发resize时

function debounce(func,wait) {
    let timer = null;
    return function () {
        if(timer){
            clearTimeout(timer)
        }
        timer = setTimeout(func,wait)
    }
}

2.节流
应用场景:鼠标连续点击时、监听滚动事件(是否滑到底部自动加载更多)

function throttle(func,wait) {
    let valid = true //当前函数是否处于工作状态
    return function () {
        if(!valid){//休息时间 暂不接客
            return false
        }
        // 工作时间,执行函数并且在间隔期内把状态位设为无效
        valid = false
        setTimeout(()=>{
            func()
            valid = true
        },wait)
    }
}

相关文章

网友评论

      本文标题:防抖与节流记录

      本文链接:https://www.haomeiwen.com/subject/wyhqnhtx.html