手写系列
防抖与节流
当用户需要向后台发送请求时,同一时间内交互过多可能导致不必要的效率问题,这时防抖与节流就显得很重要了:
防抖
事件在执行n秒后进行回调,当用户在n秒内重复再次请求时,将会重新计时
function debounce(fn,wait){
//定义时间间隔
let waitTime = null;
return function(){
//如果时间间隔已经存在就重新计时
if(waitTime){
clearTimeout(waitTime);
}
//设置定时器,在时间间隔后执行
waitTime = setTimeout(()=>{
fn.apply(this)
},wait)
}
}
节流
时间在n秒内只会执行一次,如果在同一时间内多次调用,只会响应一次
function throttle(fn,delay){
//获取开始变化时间
let begin = Date.now();
return function()