Skip to content

Mer moderne lazy loading av obskort#954

Open
jorgkv wants to merge 2 commits intodevelopfrom
feature/obs-card-lazy-loading
Open

Mer moderne lazy loading av obskort#954
jorgkv wants to merge 2 commits intodevelopfrom
feature/obs-card-lazy-loading

Conversation

@jorgkv
Copy link
Contributor

@jorgkv jorgkv commented Mar 25, 2026

Bruker content-visibility for å tegne obskort når browser mener de er relevante. Lytter deretter på contentvisibilityautostatechange event for å lage bildekarusell (med kart og snøprofil) når browseren mener innholdet er relevant.

Syns logikken i komponenten blir litt enklere, og vi slipper å implementere to interface (ngAfterViewInit og ngDestroy). Ser også at initialiseringen av bildekarusell skjer litt tidligere enn før, slik at navigering i lista ser litt smidigere ut enn tidligere, uten at jeg tror det har nevneverdig påvirkning på ytelsen (ytelsen bør heller bli bedre av denne endringen).

Se også https://modern-css.com/lazy-rendering-without-intersection-observer/

TODO: Test på iOS hvor vi tidligere har hatt "hvit-skjerm"-feil.

NB! Jeg ser at templaten i develop har en slags feil ved at app-observation-location-map og app-snow-profile refererer til reg uten at reg er deklarert. Litt rart vi ikke har fått feil knytta til dette, men denne PRen fikser evt også det.

Bruker [content-visibility](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/content-visibility) for å tegne obskort når browser mener de er relevante.
Lytter deretter på (contentvisibilityautostatechange)[https://developer.mozilla.org/en-US/docs/Web/API/Element/contentvisibilityautostatechange_event] event for å lage bildekarusell (med kart og snøprofil) når browseren mener innholdet er relevant.

Syns logikken i komponenten blir litt enklere, og vi slipper å implementere to interface (ngAfterViewInit og ngDestroy).

Se også https://modern-css.com/lazy-rendering-without-intersection-observer/

TODO: Test på iOS hvor vi tidligere har hatt "hvit-skjerm"-feil.

NB! Jeg ser at templaten i develop har en slags feil ved at `app-observation-location-map` og `app-snow-profile` refererer til `reg` uten at `reg` er deklarert. Litt rart vi ikke har fått feil knytta til dette, men denne PRen fikser evt også det.
@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://victorious-water-056410803-954.westeurope.azurestaticapps.net

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Oppdaterer lazy loading av observasjonskort ved å bruke CSS content-visibility og contentvisibilityautostatechange-eventen for å styre når bilde-/kart-/snøprofil-karusellen rendres, og rydder samtidig opp i templaten ved å introdusere en felles reg-binding.

Changes:

  • Bytter fra IntersectionObserver til content-visibility + contentvisibilityautostatechange for å trigge rendering av swiper/karusell.
  • Fjerner AfterViewInit/OnDestroy-logikk knyttet til observeren og introduserer visibilityChange()-handler på host.
  • Rydder opp i HTML ved å bruke @let reg = registration() konsekvent.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
src/app/components/observation/observation/observation.component.ts Erstatter IntersectionObserver med host-event for content-visibility og styrer isVisible via visibilityChange()
src/app/components/observation/observation/observation.component.html Introduserer reg og bruker den for å unngå repetert registration()-kall / fikser tidligere udeklarert reg-bruk
src/app/components/observation/observation/observation.component.css Aktiverer content-visibility og setter contain-intrinsic-size for bedre lazy rendering/layout-stabilitet

@github-actions
Copy link

Azure Static Web Apps: Your stage site is ready! Visit it here: https://victorious-water-056410803-954.westeurope.azurestaticapps.net

Copy link
Contributor

@gruble gruble left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lærer stadig noe nytt av deg!
Jeg har ikke testet dette på tlf, men så jo ut til å funke bra på web.
Jeg blei litt i tvil om hvor godt dette støttes av eldre telefoner, syntes det er litt vanskelig å skjønne denne: https://caniuse.com/?search=content-visibility%3A+auto
Venter med å teste på tlf til jeg har testet ferdig PR på race-condition ved initialisering av spor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants