防抖函数
function func(){
console.log("ok")
}
function debounce(func,wait=500,immediate = false){
let timer = null;
return function anonymous(...param){
let now = immediate && !timer;
clearTimeout(timer)
timer = setTimeout(()=>{
timer = null;
!immediate?func.call(this,...param):null;
},wait)
now?func.call(this,...param):null;
}
}
btn.onclick = debounce(func,500,true);
节流函数
function throrrle(func,wait = 500){
let timer = null;
let pro = 0;
return function anonymous(...arg){
let now = new Date();
let diff = wait - (now - pro);
if(diff<=0){
clearTimeout(timer);
time = null;
pro = now;
func.call(this,...arg);
}else if(!timer){
timer = setTimeout(()=>{
clearTimeout(timer);
time = null;
pro = new Date();
func.call(this,...arg);
},diff);
}
}
}
btn.onclick = throrrle(func,500)