zoukankan      html  css  js  c++  java
  • js 工具函数 节流

    节流

    创建一个“节流”装饰器 throttle(f, ms) —— 返回一个包装器。
    当被多次调用时,它会在每 ms 毫秒最多将调用传递给 f 一次

     function throttle(fn, time) {
            let timeout = null,
              saveArgs,
              saveThis;
            return function Wrap() {
              if (timeout) {
                saveArgs = arguments;
                saveThis = this;
                return;
              }
              fn.apply(this, arguments);
              timeout = setTimeout(() => {
                if (saveArgs) {
                  fn.apply(saveThis, saveArgs);
                  saveArgs = saveThis = null;
                }
                clearTimeout(timeout);
                timeout = null;
              }, time);
            };
          }
          let fn = throttle(function (e) {
            console.log(e, "执行");
          }, 500);
          document.addEventListener("mousemove", fn);
    

    效果:

  • 相关阅读:
    LeetCode 55
    LeetCode 337
    LeetCode 287
    LeetCode 274
    LeetCode 278
    LeetCode 264
    LeetCode 189
    LeetCode 206
    LeetCode 142
    LeetCode 88
  • 原文地址:https://www.cnblogs.com/heihei-haha/p/14657482.html
Copyright © 2011-2022 走看看