节流和防抖

函数防抖:是指频繁触发的情况下,只有足够的空闲时间,才执行代码一次。比如生活中的坐公交,就是一定时间内,如果有人陆续刷卡上车,司机就不会开车。只有别人没刷卡了,司机才开车。

 function jie(fn,timer){
               var startTime=0;
               return function(){
                    var nowTime=Date.now();
                    if(nowTime-startTime>timer){
                        fn.call(this);
                        startTime=nowTime;
                    }
               }
            }
            document.onmousemove=jie(function(){
                console.log("success");
                
            },2000)

函数节流:是指一定时间内js方法只跑一次。比如人的眨眼睛,就是一定时间内眨一次。这是函数节流最形象的解释。

 function dou(fn,timer){
                    var Time;                   //相当于以后都只执行fn,即return的函数
                    return function(){
                        clearTimeout(Time);
                        
                        Time=setTimeout(function(){
                            fn.call(this);
                        },timer);
                    }
                }
                document.onmousemove=dou(function(){
                    console.log("dou");
                    
                },2000)

你可能感兴趣的:(js基础,防抖,节流)