/*
在一定时间内必须执行一次方法,频繁执行一次事件时则以最后一次延迟时间为主
fn {Fun} 需要执行的函数
text {*} 需要执行的函数参数
wait {Num} 多长时间内执行方法
mustTime {Num} 超出多长时间直接调用方法无需节流
*/
function throttle(fn, param, wait=500, must_time=5000) {
clearTimeout(fn.timer) ;
fn.curr_time = Date.now(); //记录当前时间
//第一次调用
if (!fn._start) {
fn.start_time = fn.curr_time ;
}
//上次调用函数时间与当前时间进行对比,若大于,则必须执行一次函数,若小于,说明频繁触发中,重置定时器
if (fn.curr_time - fn.start_time > must_time) {
fn.call(fn, param);
fn.start_time = fn.curr_time ;
} else {
fn.timer = setTimeout(function() {
fn.call(fn, param);
}, wait)
}
}
function hello(name){
console.log(name)
}
throttle(hello,'测试')
函数节流
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...