防抖和
节流的
实现方法有很多种,以下是两种比较常见的
实现方式:
1. 使用setTimeout
实现 防抖和
节流 防抖:
javascript节流f
unction
debo unce(fn, delay) {
let timer = null;
return f
unction() {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
};
}
:
javascriptf
unction
thro ttle(fn, delay) {
let timer = null;
return f
unction() {
if (!timer) {
timer = setTimeout(() => {
fn.apply(this, arguments);
timer = null;
}, delay);
}
};
}
2. 使用时间戳
实现 防抖和
节流 防抖:
javascript节流f
unction
debo unce(fn, delay) {
let timer = null;
return f
unction() {
const now = +new Date();
if (timer && now - timer < delay) {
clearTimeout(timer);
}
timer = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
};
}
:
javascriptf
unction
thro ttle(fn, delay) {
let lastTime = 0;
return f
unction() {
const now = +new Date();
if (now - lastTime > delay) {
fn.apply(this, arguments);
lastTime = now;
}
};
}
以上两种
实现方式都可以
实现 防抖和
节流,使用哪种方式取决于个人的喜好和具体应用场景。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/3431.html