基於防抖和節流的性能優化

介紹:
當下網頁中的交互越來越多,很多高頻事件帶來的性能問題,已經是繞不過去的一個坎。怎麼去優化這些高頻事件,以下來基於防抖和節流的性能優化。
1、防抖和節流的概念:
防抖:就是指觸發事件後在n秒內函數只能執行一次,如果在n秒內又觸發了事件,則會重新計算函數執行時間。
節流:就是指連續觸發事件,但是在一段時間中只執行一次函數。
2、手寫防抖函數和節流函數:
2.1防抖函數

function debounce(fn,wait){
           let timmer = null;
           return function(){
               var args = arguments;
               var now = !timmer;
               timmer && clearTimeout(timmer);
               timmer = setTimeout(function(){
                   timmer = null;
               },wait);
               if(now){
                   fn.apply(this,args)
               }
           }
        }

2.2手寫節流函數

function jl(fn,wait){
           let last = 0;
           return function(){
               var args = arguments;
               var now = Date.now();
               if(now - last > wait){
                   fn.apply(this,args);
                   last = now;
               }
           }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章