/**
* @description: 函数防抖:多次执行只执行最后一次
* 场景:搜索联想c 重复提交 瀑布流加载
* @param function fn
* @param Number delay
* @return function
*/
deounce( fn, delay ) {
delay = delay || 1000 ;
let timer
return function(){
if( timer ) clearTimeout( timer )
timer = setTimeout(() => {
fn.apply(this, arguments)
}, delay);
}
},
/**
* @description: 函数节流:多次执行变为每隔一段时间执行
* 场景:搜索联想 重复提交 瀑布流加载
* @param function fn
* @param Number delay
* @return function
*/
throttle( fn, delay) {
delay = delay || 1000;
let timer = null;
return function(){
if( !timer ){
timer = setTimeout(() => {
fn.apply(this, arguments)
clearTimeout(timer)
}, delay);
}
}
},
.method("answer", deounce(function () {
},500))
使用防抖 连续点击按钮时,只有最后一次操作会触发请求,前面点击的不会请求到方法中,避免多次提交;
注意deounce的位置,要在function外层,否则会不生效。