Die Review-Liste rendert aktuell alle <img>-Elemente sofort beim Aufruf von renderReview() (index.html:1320 ff.). Bei 500+ Bildern fragt der Browser sofort 500 /thumb-Requests parallel an, was Memory-Druck und Scroll-Jank verursacht.
Fix
IntersectionObserver registriert die Thumb-Container. src wird erst gesetzt, wenn das Element im Viewport ist (mit rootMargin: 200px). Klick auf einen noch nicht geladenen Thumb soll trotzdem die Lightbox mit der voll aufgeloesten /preview-URL oeffnen.
Ausgliederung
Aus #24 ausgegliedert. Polling-Backoff und Name-Precompute wurden dort umgesetzt. Virtualisierung hat mehr Edge-Cases (Lightbox-Open auf noch nicht geladenem Bild, Scroll-Position-Erhalt bei Re-Render).
## Problem
Die Review-Liste rendert aktuell alle `<img>`-Elemente sofort beim Aufruf von `renderReview()` (`index.html:1320 ff.`). Bei 500+ Bildern fragt der Browser sofort 500 `/thumb`-Requests parallel an, was Memory-Druck und Scroll-Jank verursacht.
## Fix
`IntersectionObserver` registriert die Thumb-Container. `src` wird erst gesetzt, wenn das Element im Viewport ist (mit `rootMargin: 200px`). Klick auf einen noch nicht geladenen Thumb soll trotzdem die Lightbox mit der voll aufgeloesten `/preview`-URL oeffnen.
## Ausgliederung
Aus #24 ausgegliedert. Polling-Backoff und Name-Precompute wurden dort umgesetzt. Virtualisierung hat mehr Edge-Cases (Lightbox-Open auf noch nicht geladenem Bild, Scroll-Position-Erhalt bei Re-Render).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
Die Review-Liste rendert aktuell alle
<img>-Elemente sofort beim Aufruf vonrenderReview()(index.html:1320 ff.). Bei 500+ Bildern fragt der Browser sofort 500/thumb-Requests parallel an, was Memory-Druck und Scroll-Jank verursacht.Fix
IntersectionObserverregistriert die Thumb-Container.srcwird erst gesetzt, wenn das Element im Viewport ist (mitrootMargin: 200px). Klick auf einen noch nicht geladenen Thumb soll trotzdem die Lightbox mit der voll aufgeloesten/preview-URL oeffnen.Ausgliederung
Aus #24 ausgegliedert. Polling-Backoff und Name-Precompute wurden dort umgesetzt. Virtualisierung hat mehr Edge-Cases (Lightbox-Open auf noch nicht geladenem Bild, Scroll-Position-Erhalt bei Re-Render).