防抖
var timer = null;
function debounce(handle, wait)
{
if(timer !== null) clearTimeout(timer)
timer = setTimeout(()=>{handle}, wait)
}
将函数设置为等待一定时间后执行,若该时间内再次调用该函数则重置等待时间,示例中使用setTimeout使handle函数在wait时间后执行,若再次调用则清除之前的setTimeout,重新计时。
节流
var prevTime = Date.now();
function throttle(handle, wait)
{
let nowTime = Date.now();
if(nowTime - prevTime > wait)
{
handle();
prevTime = nowTime;
}
}
在一定长的时间内只能调用一次处理函数,示例中使用上次执行的时间戳与当前时间进行对比,若两者之差大于wait时才能执行handle函数。