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 事件
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容