throttle的含義
throttle一般就是我們所有的函數(shù)節(jié)流的意思箕速。通俗來說就是函數(shù)調(diào)用的頻度控制器間間隔控制罪郊。
主要的應(yīng)用場景比如:
- 鼠標(biāo)移動,mousemove事件
- dom 元素的動態(tài)定位,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的調(diào)用頻率嫁赏。
debounce
debounce 和 throttle 很像,debounce是空閑時間必須大于或者等于一定值的時候油挥,才會執(zhí)行調(diào)用方法潦蝇。
debouce是空閑時間的間隔控制款熬。會根據(jù)一定的時間間隔重復(fù)控制調(diào)用執(zhí)行的方法。
debouce主要的應(yīng)用場景比如:
- 文本的輸入keydown 事件攘乒、 keyup 事件