問題:針對頻繁觸發scoll resize繫結的事件函式,有可能短時間多次觸發時事件,影響效能
思路:多個函式呼叫合成一次,給定時間後僅呼叫最後一次
// 包裝事件的debounce函式function debounce(func, delay), delay)
// 當使用者滾動時被呼叫的函式
function foo(){
cosnole.log("todo somethind");
// 元素繫結scoll事件,觸發包裝函式debounce
let elem = document.getelementbyid('container');
elem.addeventlistener('scroll', debounce(foo, 2000));
JS防抖動和限流
防抖動 第一次被觸發後,在規定時間段內又被觸發,會消除第一次延遲函式,執行後續延遲函式。暴力防抖動 缺點 頻繁建立 刪除定時任務 function debounce 01 func,delay delay 防抖動優化 function debounce 02 func,delay else time...
js 防抖動與節流
針對一些會頻繁觸發的事件如scroll resize,如果正常繫結事件處理函式的話,有可能在很短的時間內多次連續觸發事件,十分影響效能。因此針對這類事件要進行防抖動或者節流處理 它的做法是限制下次函式呼叫之前必須等待的時間間隔。正確實現 debouncing 的方法是將若干個函式呼叫合成 一次,並在...
js 函式節流 與 防抖動
函式節流 就如同成都搖號買房,前乙個進去選房了,下乙個就要等一段時間。這種策略就很好的解決了,一大波人進去選房,銷售妹妹沒發接待的尷尬局面。應用場景 監聽瀏覽器滾動條,然後觸發函式。普通做法 document.getelementbyid throttle onscroll function 函式節...