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 事件