fezaoduke / fe-practice-hard

晚练课
69 stars 6 forks source link

第 102 期(内功-性能):节流 #105

Open wingmeng opened 5 years ago

wingmeng commented 5 years ago

节流是一种常用的性能优化手段,主要原理是:当持续触发事件时,对事件响应进行抽稀,保证一定时间段内只调用一次事件处理函数。

节流函数:

function throttle(fn, wait) {
  var prev = 0;
  wait = wait || 1000;

  return function() {
    var now = Date.now();

    if (now - prev > wait) {
      fn.apply(this, arguments);
      prev = now;
    }
  }
}

应用举例:

window.addEventListener('mousemove', throttle(function() {
  console.log(Date.now())
}));