diff options
Diffstat (limited to 'src/scripts/common/login/form-caching.ts')
| -rw-r--r-- | src/scripts/common/login/form-caching.ts | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/scripts/common/login/form-caching.ts b/src/scripts/common/login/form-caching.ts index bde6442..508d076 100644 --- a/src/scripts/common/login/form-caching.ts +++ b/src/scripts/common/login/form-caching.ts @@ -1,7 +1,12 @@ import { addPostListener, addPostResponder, JQueryAjaxResponse } from "@/shared/intercept-jquery-ajax"; +/** Caches the login area HTML to avoid re-fetching it on subsequent requests. */ let loginAreaHTML: string | null = null; +/** + * Intercepts `viewLoginAreaAction` AJAX requests and serves the cached HTML + * if available, avoiding an unnecessary network round-trip. + */ addPostResponder( "viewLoginAreaAction", function(_args): JQueryAjaxResponse | undefined | null { @@ -13,10 +18,14 @@ addPostResponder( } ); +/** + * Listens for successful `viewLoginAreaAction` responses and stores the + * returned HTML so the responder above can serve it from cache later. + */ addPostListener( "viewLoginAreaAction", function(_args, result): void { - loginAreaHTML = result.data?.toString() ?? ""; + loginAreaHTML = result.data?.toString() ?? null; }, false ); |
