防抖多用于用户注册校验用户名重复等操作
function debounce(){
let timer = null;
return function(){
clearTimeout(timer);
timer = setTimeout(()=>{
//do something here
console.log('check ok!')
},500)
}
}
var checkPost = debounce()
节流多用于优化性能,例如随鼠标滚动驱动的行为可适当减少行为密集度
function throttle(){
let timer = null;
return function(){
if(!timer){
timer = setTimeout(()=>{
//do something here
console.log('optimized!');
clearTimeout(timer)
timer = null
},1000)
}
}
}
var rerender = throttle()

本文深入探讨了JavaScript中防抖(debounce)与节流(throttle)的技术应用,详细解析了如何通过这两种方法优化用户体验及提升性能表现。防抖主要用于避免频繁触发事件,如用户输入时的实时校验,而节流则适用于限制函数调用频率,如随鼠标滚动的动态加载。掌握这两项技术,可以有效减少不必要的计算负担,提高程序效率。
1396





