防抖:短时间内大量触发某一事件,每次触发都清除掉原来的计时器,重新计时,只执行最后一次触发。
应用场景:搜索框的输入
let timer = null
document.querySelector('opt').onKeyUp = function(){
if(timer !== null){
clearTimeout(timer)
}
timer = setTimeout(()=>{
console.log('hello world, debounce’)//这里写你要实现的功能
},1000)
}
节流:短时间内大量触发某一事件,只执行一次
应用场景:快速点击
let timer = null
document.querySelector('opt').onmouseover = function(){
if(timer !== null){
return
}
timer = setTimeout(()=>{
console.log('hello world, throttle’)//这里写你要实现的功能
timer = null
},1000)
}
lodash库有封装好的的防抖与节流函数