Explain Flair debounce
This commit is contained in:
parent
e89d52ccbf
commit
d84190f58d
1 changed files with 10 additions and 0 deletions
|
@ -70,6 +70,16 @@ function getPublicGroupsCached(matrixClient, userId) {
|
||||||
delete usersPending[userId];
|
delete usersPending[userId];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// This debounce will allow consecutive requests for the public groups of users that
|
||||||
|
// are sent in intervals of < BULK_REQUEST_DEBOUNCE_MS to be batched and only requested
|
||||||
|
// when no more requests are received within the next BULK_REQUEST_DEBOUNCE_MS. The naive
|
||||||
|
// implementation would do a request that only requested the groups for `userId`, leading
|
||||||
|
// to a worst and best case of 1 user per request. This implementation's worst is still
|
||||||
|
// 1 user per request but only if the requests are > BULK_REQUEST_DEBOUNCE_MS apart and the
|
||||||
|
// best case is N users per request.
|
||||||
|
//
|
||||||
|
// This is to reduce the number of requests made whilst trading off latency when viewing
|
||||||
|
// a Flair component.
|
||||||
if (debounceTimeoutID) clearTimeout(debounceTimeoutID);
|
if (debounceTimeoutID) clearTimeout(debounceTimeoutID);
|
||||||
debounceTimeoutID = setTimeout(() => {
|
debounceTimeoutID = setTimeout(() => {
|
||||||
batchedGetPublicGroups(matrixClient);
|
batchedGetPublicGroups(matrixClient);
|
||||||
|
|
Loading…
Reference in a new issue