防抖: 事件出发后n秒之后再执行回调,如果在n秒内重复触发那么,只会重新开始计时计算。
// 防抖
function dobounce(fn, dealy) {
let timer = null;
return function() {
if (timer) {
clearTimeout(timer);/// 主要是这里清除定时器 对比节流这里是直接return
}
timer = setTimeout(() => {
fn.apply(this, arguments);
timer = null;
}, dealy);
};
}
let input1 = document.getElementById("input1");
input1.addEventListener(
"keyup",
dobounce(() => {
console.log(input1.value);
}, 5000)
);
<input type="text" id="input1" />