1 防抖
防抖適合的應(yīng)用場景漓柑,比如搜索聯(lián)想教硫,電話號碼驗(yàn)證等。只有在最后一次事件響應(yīng)辆布,再去請求資源瞬矩。
function debounce(func, delay, immediately) {
let timer = 0;
return () => {
const _this = this;
const args = arguments;
if (!timer && immediately) {
func.apply(_this,args);
return;
}
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
func.apply(_this,args);
}, delay);
};
}
2 節(jié)流
節(jié)流適合的場景,比如滾動(dòng)監(jiān)聽锋玲,自動(dòng)保存等景用。在多次密集的事件觸發(fā)中,平均分配資源請求惭蹂。
function throttle(func, delay) {
let timer = 0;
return () => {
const _this = this;
const args = arguments;
if (!timer) {
timer = setTimeout(() => {
func.apply(_this, args);
timer = 0;
}, delay);
}
};
}