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);
相关文章
|
2天前
|
JavaScript
JS封装节流函数
JS封装节流函数
21 0
|
2天前
|
JavaScript
JS中防抖和节流的区别是什么
JS中防抖和节流的区别是什么
24 0
|
2天前
|
JavaScript 前端开发 UED
js的防抖节流
js的防抖节流
10 1
|
2天前
|
JavaScript 前端开发 UED
js的节流
js的节流
14 0
|
2天前
|
测试技术
js_防抖与节流(闭包的使用)
js_防抖与节流(闭包的使用)
18 0
|
2天前
|
JavaScript
|
2天前
|
JavaScript 前端开发
【JavaScript】面试手撕节流
上篇我们讲了防抖,这篇我们就谈谈防抖的好兄弟 -- 节流。这里在老生常谈般的提一下他们两者之间的区别,顺带给读者巩固下。
54 3
|
2天前
|
JavaScript 前端开发
js的节流和防抖
js的节流和防抖
19 0
|
2天前
|
JavaScript 前端开发 UED
|
2天前
|
JavaScript 前端开发 UED
JavaScript:节流&防抖
JavaScript:节流&防抖
31 1