Sneller dan een klik

A presentation at Cream Meetup - Frontend Performance in September 2026 in Berkel en Rodenrijs, Netherlands by Edwin Bos

Slide 1

Slide 1

Sneller dan een klik

Slide 2

Slide 2

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

Slide 3

Edwin Bos Lead Frontend Developer bij Cream https://www.linkedin.com/in/ebos/

Slide 4

Slide 4

Een klein stukje geschiedenis

Slide 5

Slide 5

Slide 6

Slide 6

1991 - 2006

Slide 7

Slide 7

26 augustus 2006 r r

Slide 8

Slide 8

2010 - 2014 r r Frameworks voor Single Page Apps (SPA) r

Slide 9

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

Slide 10

Juni 2015 r ES6

Slide 11

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

Slide 12

bfcache

Slide 13

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

Slide 14

Zonder bfcache

Slide 15

Slide 15

Met bfcache

Slide 16

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

Slide 17

Cache Control Verwijder “Cache-control: no-store” header Resource: https://docs.hyva.io/hyva-themes/performance/bfcache.html

Slide 18

Slide 18

Wat kan er nou fout gaan?

Slide 19

Slide 19

Slide 20

Slide 20

Dialog sluiten Javascript

Slide 21

Slide 21

Slide 22

Slide 22

Slide 23

Slide 23

Aantal cart-items updaten Javascript

Slide 24

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

Slide 25

Snelle back- en forward-navigatie Maar wat als de gebruiker de pagina nog niet heeft bezocht?

Slide 26

Slide 26

Speculation Rules

Slide 27

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

Slide 28

Zonder speculation rules

Slide 29

Slide 29

Speculation Rules De standaard

Slide 30

Slide 30

Met speculation rules

Slide 31

Slide 31

Voorbij de standaard

Slide 32

Slide 32

Eagerness-niveaus Je kunt meerdere eagernesstypes toevoegen in één speculation ruleset Conservative Moderate Eager Immediate

Slide 33

Slide 33

Meerdere actietypes Je kunt meerdere actietypes toevoegen in één speculation ruleset Prefetch Prerender

Slide 34

Slide 34

Zonder speculation rules

Slide 35

Slide 35

Met speculation rules

Slide 36

Slide 36

Scrollen naar dezelfde positie Javascript

Slide 37

Slide 37

Met SP + scroll position

Slide 38

Slide 38

Doe dit niet

Slide 39

Slide 39

Nu is het snel Maar heeft het ook animaties?

Slide 40

Slide 40

View Transitions

Slide 41

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 42

Slide 43

Slide 43

@view-transition CSS

Slide 44

Slide 44

Slide 45

Slide 45

Slide animation CSS

Slide 46

Slide 46

Slide 47

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

Slide 48

Slide 48

Thank you