// 节流:在n秒内只会执行一次
在script 写一个节流,在需要的方法里面调用这个函数就可以使用了,delay可以设置默认时间,可以在调用的函数下面设置时间。
const throttle=(func, delay=500) => {
// 缓存一个定时器
let timer = null
// 这里返回的函数是每次用户实际调用的节流函数
return function(...args) {
if (!timer) { //判断timer是否有值,如果没有则说明定时器不存在即可继续执行
timer = setTimeout(() => { //关
func.apply(this, arguments)
timer = null; //开
}, delay)
}
}
}
// 防抖 : 多次连续点击,等待完时间间隔之后执行最后一次点击的值。
const Debounce = (fn, t) => {
let delay = t || 500;
let timer;
return function () {
let args = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
timer = null;
fn.apply(this, args);
}, delay);
};
},
在方法中使用和节流一样。