zoukankan      html  css  js  c++  java
  • js节流函数高级版

    节流函数其主要作用就是防止用户在短时间内多次触发该事件。

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    
    <body><script>
      function throttle(fn, delay, duration) {
        var timer = null,
          begin = new Date();
        return function() {
          var context = this,
            args = arguments,
            current = new Date();
          clearTimeout(timer);
          if (current - begin >= duration) {
            fn.apply(context, args);
            begin = current;
          } else {
            timer = setTimeout(function() {
              fn.apply(context, args);
            }, delay)
          }
        }
      };
    
      function demo() {
        console.log(1)
      }
      /*参数说明:第一个参数是要执行的函数,第二个参数是说在500毫秒内连续触发了该函数只执行一次,第三个参数是说每隔200毫秒自动执行一次该函数*/
      window.onresize = throttle(demo, 500, 200)
      </script>
    </body>
    
    </html>

     简单高效的方法:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    
    <body>
      <script>
      function throttle(method, context) {
        clearTimeout(method.tId);
        method.tId = setTimeout(function() {
          method.call(context);
        }, 300);
      };
    
      function demo() {
        console.log(1)
      }
      window.onresize = function(){
    throttle(demo, window)
    }
    </script> </body> </html>
  • 相关阅读:
    shell练习题4
    shell练习题3
    shell练习题2
    shell练习题1
    Docker入门
    自动化运维之ansible
    自动化运维之Saltstack
    代码管理平台
    非关系统型数据库-mangodb
    2018-08-22 第三十五课
  • 原文地址:https://www.cnblogs.com/yesyes/p/6701851.html
Copyright © 2011-2022 走看看