防抖与节流
作者:互联网
防抖:前面的所有的触发都被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发,只会执行最后一次
安装lodach.js插件,来实现防抖的效果,如果想手写防抖得会用闭包与延时器
function debounce(fn, wait) {
let timer = null
return function () {
if (timer) {
clearTimeout(timer)
}
const firstClick = !timer
if (firstClick) {
fn.apply(this, arguments)
}
timer = setTimeout(() => {
timer = null
}, wait)
}
}
节流:在规定的间隔时间范围内不会重复触发回调,只有大于这个时间间隔才会触发回调,把频繁触发变为少量触发
安装lodach.js插件,来实现节流的效果,如果想手写防抖得会用闭包与延时器
function throttle(fn, wait) {
let start = 0
return function () {
const end = new Date().getTime()
if (end - start > wait) {
fn.apply(this, arguments)
start = end
}
}
}
防抖相当于lol中的回城,节流相当于平a
搜索
复制
标签:function,触发,防抖,节流,timer,fn,wait 来源: https://www.cnblogs.com/wq246679/p/16320665.html