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

    // fn是我们需要包装的事件回调, delay是时间间隔的阈值
    export function throttle(fn, delay) {
      // last为上一次触发回调的时间, timer是定时器
      let last = 0,
        timer = null;
      // 将throttle处理结果当作函数返回
    
      return function() {
        // 保留调用时的this上下文
        let context = this;
        // 保留调用时传入的参数
        let args = arguments;
        // 记录本次触发回调的时间
        let now = +new Date();
    
        // 判断上次触发的时间和本次触发的时间差是否小于时间间隔的阈值
        if (now - last < delay) {
          // 如果时间间隔小于我们设定的时间间隔阈值,则为本次触发操作设立一个新的定时器
          clearTimeout(timer);
          timer = setTimeout(function() {
            last = now;
            fn.apply(context, args);
          }, delay);
        } else {
          // 如果时间间隔超出了我们设定的时间间隔阈值,那就不等了,无论如何要反馈给用户一次响应
          last = now;
          fn.apply(context, args);
        }
      };
    }
  • 相关阅读:
    CMD命令
    python函数
    steam更新出错 应用运行中
    更改steam的游戏库
    python 3.6 setup
    vim 安装
    绝地求生大逃杀,改配置
    回写盘写速度被限速为10M左右
    JAVA和C# 3DES加密解密
    DES/3DES/AES区别
  • 原文地址:https://www.cnblogs.com/ympjsc/p/12323330.html
Copyright © 2011-2022 走看看