实现节流(_.throttle())-简单版
2020-11-21 本文已影响0人
凉城十月
方法1: 使用underscore.js的throttle方法,设定时间间隔触发事件
_.throttle( func, wait, [options]){
}
创造并返回一个像节流阀一样的函数,当重复调用函数的时候,至少每隔wait
毫秒调用一次该函数。
方法2:自己实现简单的throttle
function throttle(func, wait){
let prev, timer
return function fn(){
let curr = Date.now()
let diff = curr - prev
//如果是第一次或者是间隔的时间比设定的时间长
if(!prev || diff >= wait){
//那么就直接执行
func()
prev = curr
}else if(diff < wait){ //如果间隔的时间比设定的时间短,那么就等到设定的时间再执行
window.clearInterval(timer) //每次之前都将定时器打破
timer = setTimeout(fn, wait - diff)
}
}
}