防抖、节流函数

92 阅读1分钟

防抖函数(一段时间内(delay),当 空隙时间 大于 delay 时,取最后一次事件执行)

例如:输入框远程加载数据...

function debounce(fn, delay) { 
    let timer; 
    return function () { 
        clearTimeout(timer); 
        timer = setTimeout(() => { 
        	fn.apply(this, arguments); 
        }, delay); 
    } 
}

节流函数(一段时间内(delay),执行一次) 例如:监听浏览器滚动事件,发送请求,加载数据。

function throttle(fn, delay) { 
    let lastCall = 0; 
    return function() { 
        let now = new Date().getTime(); 
        if (now - lastCall < delay) { 
            return; 
        } 
        lastCall = now; 
        return fn(...arguments); 
    }; 
}