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

防抖与节流记录

作者: 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