美文网首页
前端面试常见——节流

前端面试常见——节流

作者: 幻城sh | 来源:发表于2021-04-21 19:05 被阅读0次

    节流

    什么是节流?
    高频事件触发,但在 n 秒内只会执行一次,
    所以节流会稀释函数的执行频率。

    代码附上

    <!-- 第一种方法 -->
       <script>
        function coloring() {
          let r = Math.floor(Math.random()*255);
          let g = Math.floor(Math.random()*255);
          let b = Math.floor(Math.random()*255);
          document.body.style.background = `rgb(${r},${g},${b})`;
        }
    
        function throttle(func,delay) {
          let timer;
          return function() {
            let that = this;
            let args = arguments;
            if (timer) {
              return;
            }
            timer = setTimeout(()=>{
               func.apply(that,args);
               timer = null;
            },delay)
          }
        }
    
        window.addEventListener('resize',throttle(coloring,2000));
      </script>
    
      <!-- 第二种 -->
      <!-- <script>
        function coloring() {
          let r = Math.floor(Math.random()*255);
          let g = Math.floor(Math.random()*255);
          let b = Math.floor(Math.random()*255);
          document.body.style.background = `rgb(${r},${g},${b})`;
        }
    
        function throttle(func,delay) {
          let pro = 0;
          return function() {
            let now = new Date();
            let that = this;
            let args = arguments;
            if (now - pro > delay) {
              func.apply(that,args)
              pro = now;
            }
          }
        }
    
        window.addEventListener('resize',throttle(coloring,2000));
      </script> -->
    

    相关文章

      网友评论

          本文标题:前端面试常见——节流

          本文链接:https://www.haomeiwen.com/subject/bvwzlltx.html