refactor: debounce scroll event to avoid too many requests too quickly

This commit is contained in:
Miodec 2023-09-04 18:15:01 +02:00
parent eb995b775c
commit 6db23d6f6f

View file

@ -10,6 +10,7 @@ import differenceInSeconds from "date-fns/differenceInSeconds";
import { getHTMLById as getBadgeHTMLbyId } from "../controllers/badge-controller";
import * as ConnectionState from "../states/connection";
import * as Skeleton from "../popups/skeleton";
import { debounce } from "throttle-debounce";
const wrapperId = "leaderboardsWrapper";
@ -718,10 +719,12 @@ $("#leaderboardsWrapper #leaderboards .leftTableWrapper").scroll((e) => {
if (!leftScrollEnabled) return;
const elem = $(e.currentTarget);
if (Math.round(elem.scrollTop() as number) <= 50) {
requestMore("15", true);
debouncedRequestMore("15", true);
}
});
const debouncedRequestMore = debounce(500, requestMore);
$("#leaderboardsWrapper #leaderboards .leftTableWrapper").scroll((e) => {
if (!leftScrollEnabled) return;
const elem = $(e.currentTarget);
@ -729,7 +732,7 @@ $("#leaderboardsWrapper #leaderboards .leftTableWrapper").scroll((e) => {
Math.round(elem[0].scrollHeight - (elem.scrollTop() as number)) <=
Math.round(elem.outerHeight() as number) + 50
) {
requestMore("15");
debouncedRequestMore("15");
}
});
@ -739,7 +742,7 @@ $("#leaderboardsWrapper #leaderboards .rightTableWrapper").scroll((e) => {
if (!rightScrollEnabled) return;
const elem = $(e.currentTarget);
if (Math.round(elem.scrollTop() as number) <= 50) {
requestMore("60", true);
debouncedRequestMore("60", true);
}
});
@ -749,7 +752,7 @@ $("#leaderboardsWrapper #leaderboards .rightTableWrapper").scroll((e) => {
Math.round(elem[0].scrollHeight - (elem.scrollTop() as number)) <=
Math.round((elem.outerHeight() as number) + 50)
) {
requestMore("60");
debouncedRequestMore("60");
}
});