防抖是把大量的重复操作集合成一次操作,n秒后在执行,如果在这n秒内又有操作了,那么重新计时。
在实际环境中,可以避免用户重复点击提交按钮。
let btn = document.querSelector('btn');
function play() {console.log('提交')}
function debounce(fn,delay) {
let timer = null;
return function() {
let context = this,args = arguments;
if(timer) {
clearTimeout(timer);
timer = null;
}
timer = setTimeout(()=> {
fn.apply(context,args)
},delay)
}
}
btn.addEventListener('click',debounce(play,delay));