节流函数

预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新周期。

function throttle(fn, delay) {  
    var timer = null;  
    return function () {  
        var context = this, args = arguments;  
        clearTimeout(timer);  
        timer = setTimeout(function () {  
            fn.apply(context, args);  
        }, delay);  
  };  
}  



var throttle = function(delay, action){
  var last = 0;
  return function(){
    var curr = +new Date()
    if (curr - last > delay){
      action.apply(this, arguments)
      last = curr 
    }
  }
}

你可能感兴趣的:(web)