JavaScript 自己实现 节流 (throttle)

简介: JavaScript 自己实现 节流 (throttle)

思路

节流函数原理:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效

场景

  • 拖拽

    • 固定时间内只执行一次,防止超高频次触发位置变动
  • 缩放

    • 监控浏览器 resize
  • 动画

    • 避免短时间内多次触发动画引起性能问题

实现

/**
 * @param {Function} fn
 * @param {Number} delay
 */
function throttle (fn, delay = 50) {
  let lastTime = 0;
  return function (...args) {
    const now = Date.now();
    if (now - lastTime > delay) {
      lastTime = now;
      fn.apply(this, args);
    }
  };
}

setInterval(throttle (() => {
  console.log(1);
}, 500), 1);
相关文章
|
4月前
|
JavaScript
JS封装节流函数
JS封装节流函数
51 0
|
3月前
|
前端开发 JavaScript Java
【JavaScript】JavaScript 防抖与节流:以游戏智慧解锁实战奥秘
【JavaScript】JavaScript 防抖与节流:以游戏智慧解锁实战奥秘
48 3
|
3月前
|
JavaScript 前端开发 UED
深入理解JavaScript中的节流与防抖技术
理解并合理运用节流与防抖技术,可以帮助我们优化事件处理函数的执行频率,从而提升应用的性能和用户体验。这两种技术通过减少不必要的计算和DOM操作,使得Web应用程序能够更加流畅地运行。 通过掌握防抖和节流的实现原理及应用场景,开发者可以更加灵活地编写高效且性能优化的代码,对于面对高频事件处理时尤其重要。在开发中合理选择使用防抖或节流,将直接影响到应用的响应性和效率。
37 1
|
1月前
|
JavaScript 前端开发 UED
JS 防抖与节流
防抖和节流是优化高频事件处理的技术。针对如`scroll`、`resize`等频繁触发的事件,它们能有效减少不必要的回调执行,节省资源。防抖确保在一段时间内仅执行最后一次操作,适用于输入框自动补全等场景;而节流则按固定间隔执行函数,适合拖拽、滚动事件。通过简单的JavaScript实现,可以显著提升应用性能和用户体验。
26 1
JS 防抖与节流
|
6天前
|
前端开发 JavaScript UED
JavaScript防抖和节流的使用及区别
JavaScript防抖和节流的使用及区别
7 0
|
4月前
|
JavaScript 前端开发 UED
js的防抖节流
js的防抖节流
29 1
|
4月前
|
JavaScript 前端开发 UED
js的节流
js的节流
26 0
|
4月前
|
测试技术
js_防抖与节流(闭包的使用)
js_防抖与节流(闭包的使用)
39 0
|
4月前
|
JavaScript 前端开发
【JavaScript】面试手撕节流
上篇我们讲了防抖,这篇我们就谈谈防抖的好兄弟 -- 节流。这里在老生常谈般的提一下他们两者之间的区别,顺带给读者巩固下。
70 3
|
4月前
|
JavaScript