方法一:使用lodash库的debounce方法
方法二:手写防抖函数
function debounce(fn,t){
// 1.声明一个定时器变量 因为需要多次赋值 使用let声明
let timer
// 返回一个匿名函数
return function(){
if(timer){
// 如果定时器存在清除之前的定时器
clearTimeout(timer)
}
// 如果没开定时器开定时器
timer = setTimeout(function(){
fn()
},t)
}
}
节流
手写节流函数
实现单位时间段中代码只能执行一次
手写节流函数
function throttle(fn,t){
let timer = null
return function(){
if(!timer){
timer = setTimeout(function(){
fn()
timer = null
},t)
}
}
}