javasript函数的throttle和debounce

throttle的含义

throttle一般就是我们所有的函数节流的意思。通俗来说就是函数调用的频度控制器间间隔控制。
主要的应用场景比如:

  • 鼠标移动,mousemove事件
  • dom 元素的动态定位,window对象的resize和scroll事件
var resizeTimer = null;
$(window).on('resize',function() {
  if(resizeTimer) {
    clearTimeout(resizeTimer);
  }
 resizeTimer = setTimeout(function() {
  console.log("window reszie)
},400)
})

setTimeout 和 clearTimeout 就是一个简单的throttle,很好的控制了resize的调用频率。

debounce

debounce 和 throttle 很像,debounce是空闲时间必须大于或者等于一定值的时候,才会执行调用方法。

debouce是空闲时间的间隔控制。会根据一定的时间间隔重复控制调用执行的方法。
debouce主要的应用场景比如:

  • 文本的输入keydown 事件、 keyup 事件

你可能感兴趣的:(javasript函数的throttle和debounce)