簡體   English   中英

如何調節和去抖功能?

[英]How to throttle AND debounce a function?

我想知道是否有一種方法可以限制和消除$( window ).resize (或其他任何函數)調用的函數。 我試圖僅節流,但是問題是因為我正在使用100%的寬度,如果我在下一次執行該功能之前停止調整大小,則會出現水平滾動。 因此,我需要對它進行去抖動處理,以確保調整大小后它也可以執行。

如果您能想到其他方法,請告訴我!

我通常使用setTimeout完成此操作:

// Timer handle; 0 = invalid handle
var scrollTimer = 0;
$("window").on("scroll", function() {
    // Clear any pending work (it's okay to call with 0 [invalid handle], but add a guard if you like)
    clearTimeout(scrollTimer);
    // Schedule callback in X milliseconds
    setTimeout(scrollHandler, 10); // 10 = 10ms, adjust as you like
});
function scrollHandler() {
    scrollTimer = 0;
    // ...
}

如果在該時間間隔內甚至出現了新的滾動,則對上一次對scrollHandler調用將永遠不會發生,我們將安排新的滾動。 最后一個X毫秒后, scrollHandler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM