为了方便日后使用,代码留在此处,有兴趣的可以看看或给点优化建议
防抖,顾名思义,就是防止抖动,比如说点一个按钮会下载一个东西,如果手抖多点几下就要下好几个东西,所以防抖就是防止某些操作或事件连续触发,也就是在定义好的时间内只触发一次,话不多说,上代码
const debounce = (fn: callback) => {
let timer: any = null // 用来存放定时器返回值
return () => {
clearTimeout(timer) // 清空当前计时器
timer = setTimeout(() => {
// 计时器触发结束进行函数操作
fn()
}, 500)
}
}
节流:在一定时间内只触发一次,一般用于窗口大小改变后的操作
const throttle = (fn: Function) => {
let flag = true // 判断是否在节流时间内
return () => {
if(!flag) return
flag = false
setTimeout(() => {
fn.apply(this, arguments)
flag = true
}, 100)
}
}