函数节流 throttle

Posted lan-cheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数节流 throttle相关的知识,希望对你有一定的参考价值。

/*
 * throttle 
 */

var throttle = function (fn, interval) {
  var __self = fn // 保存需要被延迟执行的函数引用
  var timer // 定时器
  var firstTime = true // 是否是第一次调用

  return function () {
    var args = arguments
    var __me = this

    if (firstTime) { // 如果是第一次调用,不需延迟执行
      __self.apply(__me, args)
      return firstTime = false

    }

    if (timer) { // 如果定时器还在,说明前一次延迟执行还没有完成
      return false
    }

    timer = setTimeout(function () { // 延迟一段时间执行
      clearTimeout(timer)
      timer = null
      __self.apply(__me, args)
    }, interval || 500)
  }
}

window.onresize = throttle(function () {
  console.log(1)
}, 500)

  

以上是关于函数节流 throttle的主要内容,如果未能解决你的问题,请参考以下文章

Javascript函数节流 —— How To Use Throttle

js 节流函数 throttle

函数节流(throttle)

函数节流 throttle

javascript函数节流(throttle)与函数去抖(debounce)

简单的节流函数throttle