您的位置:首页 > Web前端 > JavaScript

实现JavaScript函数节流

2018-02-07 13:21 232 查看
为了避免函数被触发的频率太高,便用函数节流来实现控制触发频率

var throttle = function(fn, interval){

 var _self = fn;//保存需要运行的函数

 var timer; //定时器

 var firstTime = true;//用于判断是否第一次调用

return function(){

  var args = arguments;

  var _me = this;

  if(firstTime){ //如果第一次调用,直接执行fn

  _self.apply(_me,
args);

 return
firstTime = false;

 }

 if(timer){//定时器还在 ,说明前一段延迟执行还没有完成

 return
false;

}

timer = setTimeout(function(){//延迟一段时间执行

 
clearTimeout(timer);

   timer
= null;

   _self.apply(_me,
args);

}, interval || 500);

};

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: