其他分享
首页 > 其他分享> > 防抖与节流

防抖与节流

作者:互联网

防抖:前面的所有的触发都被取消,最后一次执行在规定的时间之后才会触发,也就是说如果连续快速的触发,只会执行最后一次

安装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