// 防抖和节流都有一个执行时间戳ns,不同的是防抖是延迟执行,节流是限制执行次数
// 举例:一个按钮重复点击这个操作
// 1)防抖:
// 用户第一次点击之后等ns执行后续操作 如果在ns内又点击了一遍则在又点击这个操作的时候再等ns再执行
// 触发是最后一次点击等待执行
function debonce(fn,waitTime){
let timer=null
if(timer) clearTimeout(timer)
timer=setTimeout(()=>{
fn()
},waitTime)
}
// 2)节流:
// 用户点击了按钮则执行后续操作,若用户又点击了且在ns内则不执行
// 触发是在上一次执行之后等待时间之外
function throttle(fn,waitTime){
let timestart=0
let nowTime=Date.now()
if(waitTime<=(nowTime-startTime)){ //如果这次执行时间与上次间隔在规定时间戳之外可以执行否则不重复执行
fn()
timestart=nowTime//记录上一次点击事件执行时间
}
}