在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。
function debounce(fun,time){
let timer
return function(){
clearTimeout(timer)
let args = arguments
timer=setTimeout(()=>{
fun.apply(this,args)
},time)
}
}
规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。
function throttle(fun,time){
let t1=0 //初始时间 return function(){
let t2=new Date() //当前时间
if(t2-t1>time){
fun.apply(this,arguments)
t1=t2
}
}
}