1.防抖
应用场景:输入框不断输入时、window不断触发resize时
function debounce(func,wait) {
let timer = null;
return function () {
if(timer){
clearTimeout(timer)
}
timer = setTimeout(func,wait)
}
}
2.节流
应用场景:鼠标连续点击时、监听滚动事件(是否滑到底部自动加载更多)
function throttle(func,wait) {
let valid = true //当前函数是否处于工作状态
return function () {
if(!valid){//休息时间 暂不接客
return false
}
// 工作时间,执行函数并且在间隔期内把状态位设为无效
valid = false
setTimeout(()=>{
func()
valid = true
},wait)
}
}