函数节流

Posted ywnh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数节流相关的知识,希望对你有一定的参考价值。

函数节流;

概述:限制一个函数再一定时间内只能执行一次;

<script>
    var throttle = function(func, delay) {
      // 初始化定时器的id;
      var timer = null
      // 定义开关属性
      var key = true
      return function() {
        // 第一次立即调用
        if (key) {
          func()
          key = false
        } else if (!timer) {
          // 若上次的定时器执行完毕则立即调用,否则不调用;
          timer = setTimeout(function() {
            func()
            timer = null
          }, delay)
        }
      }
    }

    // 要进行处理的函数; 
    function handle() {
      console.log(Math.random())
    }

    window.addEventListener('mousemove', throttle(handle, 1000))
  </script>

使用场景:

1、懒加载、滚动加载、加载更多、监听滚动条位置;

2、百度搜索框、搜索联想功能;

3、防止高频点击提交、防止表单重复提交;

以上是关于函数节流的主要内容,如果未能解决你的问题,请参考以下文章

函数节流

函数防抖和节流*(性能优化不错的选择)

函数的节流

JavaScript性能优化8——防抖与节流

JavaScript性能优化8——防抖与节流

js函数节流