1. 程式人生 > >性能優化之函數防抖動

性能優化之函數防抖動

想法 總結 行修改 本質 時間 響應 ron home 實現

函數防抖動是一種常見的優化高頻率調用函數的手段,核心是把高頻率調用的函數優化為在某一時間段內只調用一次

根據具體調用的時機可以分為兩種,分別是先調用防抖以及後調用防抖

先調用防抖

先調用防抖是指先調用函數,然後等待一段時間,在等待時間結束後再進行下一次調用,如果在等待時間結束前發生了多次調用,則只會響應第一次。調用時間線如下所示
技術分享圖片
根據這個想法,可以大致得到如下代碼
技術分享圖片

後調用防抖

後調用防抖則是先等待一段時間,在等待時間結束後調用函數,如果在等待時間結束前再次調用,則需重新計時並等待。調用時間線如下所示
技術分享圖片
在原有代碼基礎上進行修改,增加後調用的防抖動方法

技術分享圖片

將防抖動的代碼合並一下,得到完整的防抖動代碼
技術分享圖片

應用場景

keyupkeydown等頻繁觸發的事件監聽

表單驗證、輸入搜索、點擊搜索

其他會頻繁調用的函數等

總結

函數防抖動本質上是檢測前後兩次連續間隔內的函數調用,把時間間隔內的多次函數調用合並成一次,從而實現對頻繁調用的函數的優化
先調用防抖是立即執行時間間隔內的第一次函數調用,應用場景相對較少

後調用防抖是執行時間間隔內的最後一次函數調用,應用場景相對較多
技術分享圖片
文章來自公眾號:睿江雲計算
睿江雲官網鏈接:https://www.eflycloud.com/home?from=RJ0024

性能優化之函數防抖動