定义:在一个单位时间内只触发一次,如果在这个单位时间内多次触发,只执行一次
- 定义节流函数
function throttle(){
let timer = 0
return function(fn,delay){
let that = this
let args = arguments
if (timer){
return
}
timer = setTimeout(()=>{
fn.apply(that,args)
timer = 0
},delay)
}
}
- onload函数取出节流函数
let update = throtte(search,500)
- 触发函数里面执行
window.onresize(()=>{
update('123')
})
- 实际执行函数
search(val){
console.log(val)//123
.....
}
应用:
鼠标不断点击触发,mousedown(单位时间内只触发一次)
监听滚动事件,比如是否滑到底部自动加载更多,用throttle来判断