誰かがこれを説明して助けてくれますか。スクロール機能がページを下にドラッグしているため、Web ページの表示が遅くなります。遅延を追加する必要がありますが、これを行う方法がわかりません。
$(window).scroll(handleScroll);
誰かがこれを説明して助けてくれますか。スクロール機能がページを下にドラッグしているため、Web ページの表示が遅くなります。遅延を追加する必要がありますが、これを行う方法がわかりません。
$(window).scroll(handleScroll);
単純なスロットルデバウンス関数を記述して、スクロールイベントが処理される1秒あたりの時間を制限することができます。
function debounce(method, delay) {
clearTimeout(method._tId);
method._tId= setTimeout(function(){
method();
}, delay);
}
$(window).scroll(function() {
debounce(handleScroll, 100);
});
これにより、への各呼び出しの間に少なくとも100ミリ秒の間隔が確保されますhandleScroll
(つまり、1秒間に最大10回呼び出されます)。
zzzzBovが指摘したように、Zakasがスロットル機能として説明しているのは、実際にはデバウンス機能です。違いは、デバウンスは余分なスクロールイベントを破棄するのに対し、スロットル機能は後で処理するためにそれらをキューに入れる必要があることです(ただし、指定された最大レートで)。
スクロールイベントの場合、実際のスロットルは必要ありません。