js函式節流和函式防抖

2022-08-22 23:39:10 字數 892 閱讀 6890

函式節流: 頻繁觸發,但只在特定的時間內才執行一次**

函式防抖: 頻繁觸發,但只在特定的時間內沒有觸發執行條件才執行一次**

函式節流應用的實際場景,多數在監聽頁面元素滾動事件的時候會用到。因為滾動事件,是乙個高頻觸發的事件。

以下是監聽頁面元素滾動的示例**:

//

函式節流

var canrun = true

;document.getelementbyid("throttle").onscroll = function

() canrun = false

; settimeout(

function

(), 300);

};//

函式節流的要點是,宣告乙個變數當標誌位,記錄當前**是否在執行。

//如果空閒,則可以正常觸發方法執行。

//如果**正在執行,則取消這次方法執行,直接return。

函式防抖的應用場景,最常見的就是使用者註冊時候的手機號碼驗證和郵箱驗證了。

只有等使用者輸入完畢後,前端才需要檢查格式是否正確,如果不正確,再彈出提示語。

以下還是以頁面元素滾動監聽的例子,來進行解析:

//

函式防抖

var timer = false

;document.getelementbyid("debounce").onscroll = function

(), 300);

};//

函式節流的要點,也是需要乙個settimeout來輔助實現。延遲執行需要跑的**。

//如果方法多次觸發,則把上次記錄的延遲執行**用cleartimeout清掉,重新開始。

//如果計時完畢,沒有方法進來訪問觸發,則執行**。

JS函式節流和函式防抖

防抖 debounce 和節流 throttle 都是用來控制某個函式在一定時間內執行多少次的技巧,兩者相似而又不同。背後的基本思想是某些 不可以在沒有間斷的情況下連續重複執行。如果乙個事件被頻繁觸發多次,並且觸發的時間間隔過短,則防抖函式可以使得對應的事件處理函式只執行最後觸發的一次。函式防抖可以...

js函式防抖和函式節流

函式防抖 就是指觸發事件後在 n 秒內函式只能執行一次,如果在 n 秒內又觸發了事件,則會重新計算函式執行時間。在頻繁觸發的情況下,只有在停止觸發的時候才會執行 函式節流 限制乙個函式在一定時間內只能執行一次。目的 函式防抖和函式節流都是用來優化高頻率執行js 的手段 簡而言之就是在一定時間內,把高...

JS 函式防抖和函式節流

所謂防抖,就是指觸發事件後在 n 秒內函式只能執行一次,如果在 n 秒內又觸發了事件,則會重新計算函式執行時間。function debounce func,wait wait if callnow func.context,args 所謂節流,就是指連續觸發事件但是在 n 秒中只執行一次函式。節流...