javascript函式節流是什麼

bluetooth發表於2021-09-11

javascript函式節流是什麼

說明

1、讓連續執行的函式,變為固定時間段間斷地執行。在一段頻繁操作中,可以觸發多次,但是觸發的頻率由自己指定。

2、應用場景有DOM元素的拖拽功能實現、計算滑鼠移動的距離等。

還有Canvas 模擬畫板功能、搜尋聯想。

例項

/*
      @params:
          func[function]:最後要觸發執行的函式
          wait[number]:觸發的頻率
        @return
          可以被呼叫執行的函式
*/
function throttle(func,wait = 300){
      let timer = null,
          previous = 0;//記錄上一次操作時間
      return function anonymouse(...params){
        let now = new Date(),//記錄當前時間
            remaining = wait - (now - previous);//記錄還差多久達到我們一次觸發的頻率
        if(remaining <= 0){
          //兩次操作的間隔時間已經超過wait了
          window.clearInterval(timer);
          timer = null;
          previous = now;
          func.call(this,...params);
        }else if(!timer){
          //兩次操作的間隔時間還不符合觸發的頻率
          timer = setTimeout(() => {
            timer = null;
            previous = new Date();
            func.call(this,...params);
          }, remaining);
        }
      }
}

以上就是javascript函式節流的介紹,希望對大家有所幫助。更多Javascript學習指路:

推薦操作環境:windows7系統、jquery3.2.1版本,DELL G3電腦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3402/viewspace-2829188/,如需轉載,請註明出處,否則將追究法律責任。

相關文章