您现在的位置是:课程教程文章

javascript函数节流实现的两种方式

2023-12-14 20:34课程教程文章 人已围观

1、用时间戳判断是否已到回调执行时间,记录上次执行时间戳,然后每次触发事件时执行回调,回调判断当前时间戳距离上次执行时间戳的时间间隔是否为*s。

如果是,则执行,并更新上次执行时间戳,如此循环。

varthrottle=function(delay,action){
varlast=0;
returnfunction(){
varcurr=newDate();
if(curr-last>delay){
action.apply(this,arguments);
last=curr;
}
}
}

2、使用定时器。

比如,当scroll事件刚触发时,打印一个hello world ,然后设置一个1000ms的定时器,此后每次触发scroll事件,触发回调,如果已经存在定时器,则回调不执行方法,知道定时器出发,handler被清除,然后重新设置定时器。

varthrottle=function(delay,action){
vartimeout;
varlater=function(){
timeout=setTimeout(function(){
clearTimeout(timeout);
//解除引用
timeout=null;
},delay);
};
later();
if(!timeout){
action.apply(this,arguments);
later();
}
}

以上就是javascript函数节流实现的两种方式,希望对大家有所帮助。更多Javascript学习指路:Javascript

推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

课程教程:javascript函数节流实现的两种方式

上一篇:javascript函数去抖如何理解

下一篇:没有了

站点信息

  • 文章统计篇文章