什么是防抖和节流?有什么区别?如何实现?
Posted 茴香
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是防抖和节流?有什么区别?如何实现?相关的知识,希望对你有一定的参考价值。
防抖
动作绑定事件,动作发生后一定时间后触发事件,在这段时间内,如果该动作又发生,则重新等待一定时间再触发事件
实现:
function debounce(func,time){
let timer = null;
return ()=>{
clearTimeout(timer);
timer = setTimeout(()=>{
func.apply(this,arguments)
},time)
}
}
节流
动作绑定事件,动作发生后一段时间后触发事件,在这段时间内,如果动作又发生,则无视该动作,直到事件执行完后,才能重新触发
实现:
function throtte(func,time){
let activeTime = 0;
return ()=>{
const current = Date.now()
if(current-activeTime>time){
func.apply(this,arguments);
activeTime = Date.now();
}
}
}
简而言之,防抖是指高频触发的事件,在制定的单位时间内,只响应最后一次,如果在指定时间内再次触发,则重新计算时间。节流是指高频触发的事件,在指定的单位时间内,只响应第一次
以上是关于什么是防抖和节流?有什么区别?如何实现?的主要内容,如果未能解决你的问题,请参考以下文章