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

函数防抖和节流快速记忆

时间:2020-07-28 17:01:42      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:main   argument   情况下   bsp   ret   ini   function   str   记忆   

函数去抖

单位时间内,无论触发多少次 只执行一次;这里的时间是短暂的 极端情况下,函数会一直处于等待状态

函数去抖常用于防止 短时间内重复执行函数

 

 1 function debounce(func, delay) {
 2     //去抖
 3     var tId;
 4     return function () {
 5       var context = this;
 6       var arg = arguments;
 7       if (tId) clearTimeout(tId);
 8       tId = setTimeout(function () {
 9         func.apply(context, arg);
10       }, delay);
11     };
12   }
13 
14 //使用
15 debounce(function () {
16       console.log(1)
17     }, 2000)

 

函数节流:

 

单位时间内只执行一次;不同于防抖,节流多用于持续触发 且 不会出现极端情况

 

 

function throttle(func, delay) {
    //函数节流
    var timer = null;
    var startTime = Date.now();
    return function () {
      var curTime = Date.now();
      var remaining = delay - (curTime - startTime);
      var context = this;
      var args = arguments;
      clearTimeout(timer);
      if (remaining <= 0) {
        func.apply(context, args);
        startTime = Date.now();
      } else {
        timer = setTimeout(func, remaining);
      }
    };
  }

 

函数防抖和节流快速记忆

标签:main   argument   情况下   bsp   ret   ini   function   str   记忆   

原文地址:https://www.cnblogs.com/websir/p/13391438.html

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