傳遞事件物件
規定函式至少間隔多久執行
利用時間間隔,當事件觸發的時間間隔很短的時候,就認為使用者操作還處於未完成狀態,推遲事件處理程式的執行。
"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 函式節...