zoukankan      html  css  js  c++  java
  • 防抖和节流的实现

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
    </head>
    <body>
      <button id="save-button">保存</button>
      <script>
        // 防抖:舍弃在规定时间外做的高频操作
        // 闭包,使得timer为局部变量,不污染全局
        function debounce(time) {
          let timer = null;
          return function() {
            clearTimeout(timer);
            timer = setTimeout(() => {
              console.log('300ms after');
            }, time);
          }
        }
    
        // 小于300ms时间内的高频操作被舍弃
        window.addEventListener('resize', debounce(300));
    
        // 节流:在规定的时间内完成之后才能进行下一次操作
        function throttle(fn, time) {
          let active = true;
          // 未保存前,允许点击保存操作
          return function() {
            if (active) {
              // 保存之后,未完成相关操作之前不允许重新保存操作
              active = false;
              setTimeout(() => {
                fn();
                // 保存操作完成之后,允许后续点击操作
                active = true;
              }, time);
            }
          }
        }
      
        const saveButton$ = document.getElementById('save-button');
      
        saveButton$.addEventListener('click', throttle(function() {
          console.log('保存点击!');
        }, 500))
    
      </script>
    
    </body>
    </html>
    

      

  • 相关阅读:
    pygame--颜色变化
    pyQt绘图
    pyqt布局管理器
    java执行shell/cmd命令
    word公式编辑器公式
    pygame绘制文本
    2.add two number
    eltwise层
    crop层
    fcn
  • 原文地址:https://www.cnblogs.com/chenfengami/p/12682333.html
Copyright © 2011-2022 走看看