美文网首页
防抖和节流

防抖和节流

作者: 叫我辣条大人 | 来源:发表于2019-04-01 00:32 被阅读0次

    定义:

    防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间,多次触发合并为一次执行。

    节流,就是指连续触发事件但是在 n 秒中只执行一次函数。节流会稀释函数的执行频率。


    防抖

    function debounce(fn, wait) {
        let timeout
        return function () {
            let self= this,args = arguments
            timeout && clearTimeout(timeout)
           
            timeout = setTimeout(() => {
                fn.apply(self, args)
            }, wait)
        }
    }
    
    

    节流

    function throttle(fn, wait) {
        let timeout;
        return function() {
            let self= this,args = arguments
            if (!timeout) {
                timeout = setTimeout(() => {
                    timeout = null;
                    fn.apply(self, args)
                }, wait)
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:防抖和节流

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