JS節流實現 支援多個函式同時呼叫

2021-10-08 03:10:50 字數 900 閱讀 7261

限制乙個函式在一定時間內只能執行一次

之前有關於js防抖函式的實現,可以見js防抖函式支援多個函式呼叫

本文採用的是時間戳結合定時器方式進行節流,且可以同時支援多個函式的呼叫

立即執行,適用於頁面進入後立即載入資料,在wait時間內,fun的呼叫不會再執行

呼叫示例

// 預設執行後,在1500毫秒內再次執行只會輸出一次throttle

commonutil.throttle(

() =>

)// 第二次呼叫,只會有乙個throttle執行

commonutil.throttle(

() =>

)

/**

* 說明:md5_hex函式是對函式體進行md5編碼,作為key記錄在map中,後續在移除fun時進行比對,

* 在使用的時候,可以自行實現hash,也可以忽略,直接使用函式體的string作為key

*/import from './md5.js'

inte***ce paramsmap

class _commonutil ,500)

*/throttle(fun: function, wait: number = 1500) else

}this.functionreqmap.set(hash, )

// 執行函式呼叫

fun()

// 攔截在wait期間的函式再次呼叫,在超時後,將限制解除

settimeout(() =>

}))needremovekeys.map((value) => )

}, wait)

}}export const commonutil = new _commonutil()

js實現防抖函式和節流函式

含義 防抖函式指的是在特定的時間內沒有再次觸發,才得以進行接下來的函式執行 用途 當window.onresize不斷的調整大小的時候,為了避免不斷的重排與重繪,可以用防抖函式設定在onresize完成後一段時間內不再有視窗大小變動,此時再進行dom的重排重繪 function debounce f...

js實現函式防抖與節流

防抖 在事件被觸發n秒後再執行 如果在這n秒內又被觸發,則重新計時。節流 規定在乙個單位時間內,只能觸發一次函式。如果這個單位時間內觸發多次函式,只有一次生效。js函式防抖與節流的區別 函式防抖是某一段時間內只執行一次,而函式節流是間隔時間執行。1 通過理解函式防抖與函式節流的概念後,使用閉包實現函...

原生js物件導向實現函式節流 郝晨光

函式節流 throttle 限制乙個函式在一定時間內只能執行一次。函式節流的使用場景當事件不需要頻繁的被觸發,但是由於特定dom事件的原因不斷的觸發事件的時候 在你需要用它的時候,你自然而然會知道是什麼時候!如 input事件,resize事件,scroll事件,mousemove事件,touchm...