防抖和节流

作者: 前往悬崖下寻宝的神三算 | 来源:发表于2018-07-27 11:01 被阅读0次

防抖


固定时间内函数只执行一次。

使用高阶函数,返回一个被定时器包裹的新函数

//简单实现
var  debounce=function (delay,fn,ctx){
  if(ctx===undefined){
    ctx=this;
  }
  var timer;
  return function(){
    var argu=this.arguments;
    clearTimeout(timer);
    timer=setTimeout(function(){
      fn.apply(ctx,argu)
    },delay)
  }
}

使用

function fn(a,b){...};
var newFn=debounce(100,fn);
newFn('cc',23);//取消
newFn('cc',23);//取消
newFn('cc',23);//执行

注:大多情况,这种方式并不适用,因为程序是延迟执行的

节流


固定时间内函数只执行一次。

var throttle=function(t,fn,ctx){
  if(ctx===undefined){
    ctx=this;
  }
  var preT=0;
  return function(){
    var currT=+new Date();
    if(currT-preT>t){
      fn.apply(ctx,arguments);
      preT=currT;
    }
  }
}

使用

function fn(a,b){...};
var newFn=throttle(100,fn);
newFn('cc',23);//执行
newFn('cc',23);//取消
newFn('cc',23);//取消

相关文章

  • 谈谈js中的节流和防抖函数

    关于节流和防抖,这篇文章说的很好了,深入lodash源码分析防抖和节流深入篇 | Lodash 防抖和节流是怎么实...

  • JavaScript防抖和节流

    1. 认识防抖和节流 1.1. 对防抖和节流的认识 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电...

  • 前端性能优化-浅谈js防抖和节流

    浅谈js防抖和节流

  • Javascript 基础

    1、函数防抖和函数节流 【《javascript高级程序设计》里,函数节流是这里讲的函数防抖。】函数防抖: 在事件...

  • js 防抖 节流

    节流 防抖1 防抖2

  • 2019-03-27

    js的防抖和节流 据我所知防抖和节流都是为了优化作用,减轻浏览器和服务端的负担,防抖和节流俩个的英文要记住: de...

  • js的防抖和节流

    js的 防抖(debounce)和 节流(throttle ) 防抖和节流一般用于高频触发事件,属于浏览器性能优化...

  • 手写防抖和节流函数实现

    1. 认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流...

  • 实现防抖和节流

    一、认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流动...

  • 2019-04-24关于节流和防抖

    节流: 应用场景: 防抖: 应用场景: 1.节流 2.防抖

网友评论

    本文标题:防抖和节流

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