js实现节流功能如何实现
dearweb
发布:2023-02-16 15:16:37阅读:
节流是一种在高频率触发事件时,限制处理函数的执行频率的技术。实现节流通常使用定时器来限制处理函数的执行。
以下是一个使用 JavaScript 实现节流功能的示例代码:
function throttle(fn, delay) {
let timer = null;
let lastTime = null;
return function(...args) {
const context = this;
const now = Date.now();
if (lastTime === null || now - lastTime >= delay) {
fn.apply(context, args);
lastTime = now;
} else {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(context, args);
lastTime = Date.now();
}, delay - (now - lastTime));
}
};
}以上代码定义了一个 `throttle` 函数,接受两个参数:一个是要执行的函数,另一个是延迟时间。
在函数内部,使用两个变量 `timer` 和 `lastTime` 来保存定时器的 ID 和上一次执行的时间。在每次触发事件时,如果当前时间距离上一次执行的时间超过了指定的延迟时间,则直接执行函数;否则,设置一个定时器来延迟执行函数。这样,在规定的时间内,最多只会执行一次函数,从而达到节流的效果。
使用节流功能可以限制事件处理函数的执行频率,避免在高频率事件触发时造成不必要的计算开销。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧