Sneller dan een klik Jaren lang waren Single Page Apps de manier om een site snel aan te laten voelen met een rijke experience.
Vanaf nu is de volgende pagina al geladen voordat jij hebt geklikt. Native in de browser.
Slide 3
Edwin Bos
Lead Frontend Developer bij Cream https://www.linkedin.com/in/ebos/
Slide 4
Een klein stukje geschiedenis
Slide 5
Slide 6
1991 - 2006
Slide 7
26 augustus 2006
r
r
Slide 8
2010 - 2014
r
r
Frameworks voor Single Page Apps (SPA)
r
Slide 9
Single Page Apps Instant navigatie
Zware initiële load
Transities tussen pagina’s
SEO is veel extra werk
JS-state tussen views
Router en state management
Voelt als een native app
moet je allemaal zelf bouwen Hydration mismatches, memory leaks, stale state
Slide 10
Juni 2015
r
ES6
Slide 11
Afgelopen 10 jaar Dialog & Popover
bfcache
Native CSS Nesting
loading=“lazy”
CSS Anchor Positioning
Scroll Driven Animations
Container Queries
Speculation Rules
Web Components
View Transitions
:has()
Color Functions
Slide 12
bfcache
Slide 13
”
”
Bfcache bevriest een hele pagina in het geheugen zodra je ervan wegnavigeert, zodat de browser bij terug/vooruitnavigatie direct kan herstellen, zonder nieuwe requests of een volledige reload
Slide 14
Zonder bfcache
Slide 15
Met bfcache
Slide 16
Chrome-gebruiksdata laat zien dat 1 op de 10 navigaties op desktop en 1 op de 5 op mobiel een back- of forward-navigatie is
Source: https://web.dev/articles/bfcache
Slide 17
Cache Control Verwijder “Cache-control: no-store” header
Resource: https://docs.hyva.io/hyva-themes/performance/bfcache.html
Slide 18
Wat kan er nou fout gaan?
Slide 19
Slide 20
Dialog sluiten Javascript
Slide 21
Slide 22
Slide 23
Aantal cart-items updaten Javascript
Slide 24
Chrome Sinds 2025 ook met “no-store” bfcache Vertrouw er niet op dat Chrome “Cachecontrol: no-store” negeert Een pagina komt niet uit de bfcache als een cookie wijzigt bfcache werkt niet in andere browsers Resource: https://docs.hyva.io/hyva-themes/performance/bfcache.html
Slide 25
Snelle back- en forward-navigatie Maar wat als de gebruiker de pagina nog niet heeft bezocht?
Slide 26
Speculation Rules
Slide 27
”
geprefetcht of geprerenderd moeten worden, op basis van regels die je zelf de nieert, zodat de volgende pagina al klaarstaat zodra de gebruiker klikt
fi
”
Met Speculation Rules vertel je de browser vooraf welke links
Slide 28
Zonder speculation rules
Slide 29
Speculation Rules De standaard
Slide 30
Met speculation rules
Slide 31
Voorbij de standaard
Slide 32
Eagerness-niveaus Je kunt meerdere eagernesstypes toevoegen in één speculation ruleset Conservative Moderate Eager Immediate
Slide 33
Meerdere actietypes Je kunt meerdere actietypes toevoegen in één speculation ruleset Prefetch Prerender
Slide 34
Zonder speculation rules
Slide 35
Met speculation rules
Slide 36
Scrollen naar dezelfde positie Javascript
Slide 37
Met SP + scroll position
Slide 38
Doe dit niet
Slide 39
Nu is het snel Maar heeft het ook animaties?
Slide 40
View Transitions
Slide 41
”
”
Met View Transitions genereert de browser automatisch een geanimeerde overgang tussen twee DOM-states, door een voor- en na-snapshot te maken en die via CSS te animeren
Slide 42
Slide 43
@view-transition
CSS
Slide 44
Slide 45
Slide animation CSS
Slide 46
Slide 47
Nu is het razendsnel én met een super experience Instant navigatie Transities tussen pagina’s JS-state tussen views Voelt als een native app Allemaal native in de browser