函数的节流与防抖

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

```

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)

        }

    }

}

```

你可能感兴趣的:(函数的节流与防抖)