码迷,mamicode.com
首页 > 其他好文 > 详细

函数节流

时间:2020-02-19 19:10:23      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:联想   set   else   out   handle   dde   ons   script   场景   

函数节流;

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

<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、防止高频点击提交、防止表单重复提交;

函数节流

标签:联想   set   else   out   handle   dde   ons   script   场景   

原文地址:https://www.cnblogs.com/ywnh/p/12314964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!