1.防抖
應(yīng)用場景:輸入框不斷輸入時(shí)、window不斷觸發(fā)resize時(shí)
function debounce(func,wait) {
let timer = null;
return function () {
if(timer){
clearTimeout(timer)
}
timer = setTimeout(func,wait)
}
}
2.節(jié)流
應(yīng)用場景:鼠標(biāo)連續(xù)點(diǎn)擊時(shí)网持、監(jiān)聽滾動(dòng)事件(是否滑到底部自動(dòng)加載更多)
function throttle(func,wait) {
let valid = true //當(dāng)前函數(shù)是否處于工作狀態(tài)
return function () {
if(!valid){//休息時(shí)間 暫不接客
return false
}
// 工作時(shí)間,執(zhí)行函數(shù)并且在間隔期內(nèi)把狀態(tài)位設(shè)為無效
valid = false
setTimeout(()=>{
func()
valid = true
},wait)
}
}