節流和防抖

2022-03-07 17:15:33 字數 871 閱讀 5292

在事件被觸發n秒後再執行**,如果在這n秒內又被觸發,則重新計時

function

debounce(func, delay)

timer = settimeout(() =>, delay)

}}//

模擬一段ajax請求

function

ajax(content) `)

}let input = document.getelementbyid('debounce')

let debounceajax = debounce(ajax, 500)

input.addeventlistener('keyup', (e) =>)

應用場景:

輸入框搜尋聯想,使用者在不斷輸入值時,用防抖來節約請求資源

window觸發resize時,不斷調整瀏覽器視窗大小會不斷觸發事件,用防抖讓其只觸發一次

乙個單位時間內,只能觸發一次函式。如果這個單位時間內觸發多次函式,只有一次生效

function

throttle(func, delay) , delay)

} else

}}function

ajax(content) `)

}let throttleajax = throttle(ajax, 1000)

let input = document.getelementbyid('throttle')

input.addeventlistener('keyup', (e) =>)

應用場景:

監聽滾動事件,比如是否滑到底部自動載入更多

都是防止某一事件頻繁觸發

防抖是某一時間段內只執行一次,函式節流是間隔時間執行

防抖和節流 什麼是防抖和節流

目錄二 節流 有這樣一種情況,想象有乙個表單,點選提交按鈕就傳送請求給伺服器。如果使用者在很短的時間間隔內 手抖 點選了多次,又或者是惡意點選,那麼就將傳送多個請求。該行為將造成伺服器額外的不必要負載。所謂防抖,實際上就是是處理這種常見的情況的描述。submit該段 當點選submit按鈕的時候,將...

防抖和節流

在前端開發過程中,我們經常需要繫結一些持續觸發事件,如 resize scroll mousemove等等,但有些時候我們並不希望在事件持續觸發的過程中那麼頻繁的去執行函式。通常這種情況下,我們怎麼去解決呢?一般來講,防抖和節流是比較好的解決方案。一 函式的防抖 1 什麼是函式防抖 函式防抖 deb...

防抖和節流

防抖和節流的作用都是防止函式多次呼叫。區別在於,假設乙個使用者一直觸發這個函式,且每次觸發函式的間隔小於設定的時間,防抖的情況下只會呼叫一次,而節流的情況會每隔一定時間呼叫一次函式。1.防抖 函式防抖 debounce n秒內函式只會執行一次,如果n秒內高頻事件再次被觸發,則重新計算時間。如下例,對...