js 抖動和節流

2021-09-11 21:56:30 字數 1043 閱讀 2591

傳遞事件物件

規定函式至少間隔多久執行

利用時間間隔,當事件觸發的時間間隔很短的時候,就認為使用者操作還處於未完成狀態,推遲事件處理程式的執行。

"text" id=

"input"

>

// 簡單的防抖動函式

function

debounce

(func, wait);}

//事件處理程式

function

realfunc()

const input = document.

getelementbyid

('input');

input.

addeventlistener

('keydown'

,debounce

(realfunc,

500));

'keydown',realfunc);

<

/script>

規定函式在某時間段內最多執行一次

//節流函式

function

throttle

(func,interval)

,interval)

}else}}

//事件處理程式

function

realfunc()

window.

addeventlistener

('scroll'

,throttle

(realfunc,

100));

'scroll',realfunc);

<

/script>

不管是函式節流還是函式防抖,減少的都是事件處理程式的呼叫頻率,而不是時間的呼叫頻率

何時使用函式防抖,何時使用函式節流?當我們使用節流函式或者防抖函式封裝事件處理程式時,需要注意兩個問題:

參考文獻

參考文獻

js 防抖動與節流

針對一些會頻繁觸發的事件如scroll resize,如果正常繫結事件處理函式的話,有可能在很短的時間內多次連續觸發事件,十分影響效能。因此針對這類事件要進行防抖動或者節流處理 它的做法是限制下次函式呼叫之前必須等待的時間間隔。正確實現 debouncing 的方法是將若干個函式呼叫合成 一次,並在...

抖動與節流

當我們頻繁觸發同乙個事件,如 改變視窗大小 上下滾動滾動條 反覆向輸入框中輸入內容,就會頻繁的向後台傳送請求。直到任務完成時,之前的請求都是多餘的,嚴重影響使用者體驗和伺服器的效能。這種問題就叫抖動 可以在一定時間內監聽是否再次輸入,如果沒有再次輸入則認為本次輸入完成,傳送請求,否則就是判定使用者仍...

js 函式節流 與 防抖動

函式節流 就如同成都搖號買房,前乙個進去選房了,下乙個就要等一段時間。這種策略就很好的解決了,一大波人進去選房,銷售妹妹沒發接待的尷尬局面。應用場景 監聽瀏覽器滾動條,然後觸發函式。普通做法 document.getelementbyid throttle onscroll function 函式節...