1.函数防抖
函数防抖通常用于处理用户在短时间内频繁触发某一件事(如窗口大小改变、搜索框输入等)的情况。它的原理是在一定时间(如500ms)内,如果用户多次触发该事件,则只执行最后一次触发。这样可以减少触发次数,避免无效操作,提高性能。
const debounce = function(fn,t)=>{
const delay = t || 500;
let timer;
return function(){
const args = arguments;
if(timer){
clearTimeout(timer);
}
timer = setTimeout(()=>{
timer=null;
fn.apply(this,args)
},delay)
}
2.函数节流
函数节流通常用处理需要反复执行的操作,如动画效果、滚动事件等。它的原理是在一定事件内(如500ms)只执行一次操作,避免频繁触发操作,提高性能;
const throttle = (fn,dealy)=>{
const delay = t || 500;
let timer;
return function(){
const args = arguments
if(!timer){
timer = seTimeout(()=>{
timer=null;
fn.apply(this,args)
},delay)
}
}
}
明明也是很清晰明了的道理为什么总是弄混了,还写不出来!!!!