1.防抖
当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次
用处:输入自动查询
function debounce(fn, wait) {
let timeout = null;
return function() {
if(timeout !== null) clearTimeout(timeout);
timeout = setTimeout(fn, wait);
}
}
2.节流
当持续触发事件时,保证一定时间段内只调用一次事件处理函数 用处:监听滚动事件
function throttle(fn,delay){
let prev = Date.now();
return function() {
let now = Date.now();
if(now - prev >= delay){
prev=now;
fn();
}
}
}