節流與防抖

2022-06-06 10:54:07 字數 634 閱讀 4834

節流

作用:onscroll,onkeyup,onkeydown,resize,onkeypress等主要解決高頻事件。

原理:單純的降低頻率,保證一段時間內,只執行一次就達到節省資源的目的。

例:onkeyup每鍵入乙個字母就會觸發一次,如果觸發後要請求資料,那就要執行很多次請求了

沒有節流前

使用節流後

防抖

作用:onscroll,oninput等時時觸發的問題

實現原理:通過settimeout設定時間,在觸發事件後,在一定時間內沒有再次觸發事件,處理函式才會執行,如果在設定的時間內又觸發了事件,那就重新計時。

通俗解釋:張三在電梯裡,電梯每5秒關閉電梯門,當電梯過了3秒時,將要關閉電梯門時,李**來了,這時候電梯又重新計時,經過5秒後關閉電梯門,如果又過了3秒時,王五進來了,電梯又會重新計時,再經過5秒且這5秒內沒有人再進入,電梯就開始正常公升降了。

節流與防抖

瀏覽器中某些計算和處理要比其他的昂貴,例如在瀏覽器中操作dom比非dom互動需要更多的記憶體和cpu的事件,連續嘗試進行過多的dom相關操作可能ui導致瀏覽器掛起,有時甚至會崩潰。尤其在ie中使用onresize事件處理程式的時候容易發生,當調整瀏覽器大小的時候,該事件會連續觸發。在onresize...

防抖與節流

防抖 當事件持續觸發,一定時間內沒有觸發事件函式處理一次。比如輸入框的ajax請求做模糊查詢 節流 當時間持續觸發,在一秒內只能觸發一次。比如滾動條持續向下滾動,載入更多資料 function debounce fn,wait function throttle func,delay functio...

節流與防抖

在實際開發中,我們經常會遇到一類需求 根據input輸入容來校驗或者搜尋資料,根據視窗的大小變化來進行相關操作等。如果事件操作函式跟使用者的操作保持實時同步,那麼當使用者的操作十分頻繁時,就會多出許多無用的事件操作,並加重瀏覽器的負擔,影響頁面的效能。這時我們可以採用debounce 防抖 和thr...