含义和使用场景
函数节流,是控制在固定的时间间隔,比如每隔1s,调用一下函数。它的使用场景是:例如,在页面滚动下拉加载内容时(此时调用了接口或者引用了大一些的代码块),如果不加以控制,就会频繁执行一些操作,而这些不仅会浪费资源也会对浏览器增添额外的负担。
函数防抖,是在一定时间内不触发此函数的时候,此时会执行一次此方法。它的使用场景是:例如,在搜索框中输入内容,下方出现联想搜索词条时,同样的,如果不进行处理,也会频繁的执行操作,至于缺点,就不赘述了。
引用看过的文章中的一句话,就是:节流就是把多次执行改为每隔一定时间执行一次,防抖就是把多次执行改为最后执行一次。
代码实现
函数节流
function throttle(fn,delayTime){
let time = 0
return function(){
let currentTime = +new Date()
if(currentTime-time > delayTime){
fn.call(this)
time = currentTime
}
}
}
函数防抖
function debounce(fn,delayTime){
let setId = null
return function(){
if(setId != null){
clearTimeout(setId)
}
setId = setTimeout(fn,deplayTime)
}
}
}