Client Side Rendering (CSR) is een moderne webtechniek waarbij de browser van de gebruiker het zware werk doet bij het genereren van webpagina's. In plaats van dat de server volledige HTML-pagina's opstuurt, stuurt deze bij CSR een minimale HTML-pagina met JavaScript-bestanden. De browser voert vervolgens deze JavaScript-code uit om de pagina dynamisch te bouwen en te renderen.
Bij CSR ontvangt de gebruiker aanvankelijk een vrijwel lege HTML-pagina met verwijzingen naar JavaScript-bestanden. Zodra deze scripts zijn geladen en uitgevoerd, haalt de applicatie data op (vaak via API's) en bouwt de gebruikersinterface op in de browser. Dit proces gebeurt volledig aan de kant van de client, vandaar de naam.
Hoe werkt Client Side Rendering?
Het CSR-proces verloopt in verschillende stappen:
- Initiële request: De gebruiker vraagt een pagina op bij de server
- HTML-skeleton: De server stuurt een minimale HTML-pagina terug met links naar JavaScript-bundles
- JavaScript download: De browser downloadt de benodigde JavaScript-bestanden
- JavaScript executie: De browser voert de JavaScript-code uit
- Data ophalen: De applicatie haalt data op via API-calls
- Rendering: De browser bouwt de DOM en rendert de complete pagina
Verschil met Server Side Rendering
Het belangrijkste verschil tussen CSR en Server Side Rendering (SSR) ligt in waar de HTML wordt gegenereerd. Bij SSR gebeurt dit op de server, waardoor de gebruiker direct een volledig gerenderde pagina ontvangt. Bij CSR gebeurt dit in de browser, wat betekent dat de gebruiker eerst moet wachten tot alle JavaScript is geladen en uitgevoerd voordat de pagina volledig zichtbaar is.
Voordelen van Client Side Rendering
- Rijke interactiviteit: CSR maakt complexe, app-achtige gebruikerservaringen mogelijk
- Snelle navigatie: Na de initiële laadtijd zijn pagina-overgangen vaak zeer snel
- Verminderde serverbelasting: De server hoeft alleen data te versturen, niet complete HTML-pagina's
- Betere scheiding: Frontend en backend kunnen onafhankelijk van elkaar ontwikkeld worden
- Offline functionaliteit: Met service workers kunnen CSR-apps ook offline werken
Nadelen van Client Side Rendering
- Langzamere initiële laadtijd: Gebruikers moeten wachten tot JavaScript is geladen en uitgevoerd
- SEO-uitdagingen: Zoekmachines kunnen moeite hebben met het indexeren van CSR-content
- JavaScript-afhankelijkheid: Als JavaScript uitgeschakeld is, werkt de site niet
- Grotere bundles: Meer code moet naar de client gestuurd worden
- Performance op zwakkere apparaten: Oudere of minder krachtige apparaten kunnen moeite hebben met het uitvoeren van complexe JavaScript
