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 和上一次执行的时间。在每次触发事件时,如果当前时间距离上一次执行的时间超过了指定的延迟时间,则直接执行函数;否则,设置一个定时器来延迟执行函数。这样,在规定的时间内,最多只会执行一次函数,从而达到节流的效果。
使用节流功能可以限制事件处理函数的执行频率,避免在高频率事件触发时造成不必要的计算开销。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧