函数的节流与防抖

如果一个事件频繁触发多次,并且两次事件相隔事件比较短,则防抖函数使得对应的处理事件只触发一次。

```

functiondebounce(fn, delay) {

    let timer=null

    return    function() {

        clearTimeout(timer)

        timer = setTimeout(() => {

            fn()

        }, delay)

    }

}

```


如果一个事件频繁触发多次,节流函数可以按照固定频率执行相应的处理事件

```

    function throttle(fn, threshold) {

        let timer

        let startTime = Date.now()

        return function() {

            let endTime = Date.now()

            clearTimeout(timer)

            if((endTime - startTime) >= threshold) {

                fn()

                startTime = endTime

            } else {

                timer = setTimeout(() => {

                fn()

            }, threshold)

        }

    }

}

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容