Hoe voorkom je het probleem van 'flash of unstyled content' (FOUC)?
sobes.tech AI
Antwoord van AI
De meest effectieve methoden:
-
Synchrone CSS-lading: Plaats
<link rel="stylesheet">in<head>van het document zodat de browser de stijlen laadt en toepast vóór het renderen van de inhoud.<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mijn App</title> <link rel="stylesheet" href="/styles/main.css"> <!-- Overige head-tags --> </head> -
In-line kritieke stijlen: Plaats de stijlen die nodig zijn om het zichtbare deel van de pagina weer te geven ("Above the fold") direct in
<head>met<style>. Dit versnelt de initiële rendering. De overige stijlen kunnen asynchroon worden geladen.<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mijn App</title> <style> /* Kritieke stijlen hier */ body { margin: 0; padding: 0; } h1 { color: blue; } </style> <link rel="stylesheet" href="/styles/main.css"> <!-- Overige head-tags --> </head> -
Gebruik
font-display: swapof vergelijkbare eigenschappen voor lettertypen: Voor aangepaste lettertypen die FOUT (Flash of Unstyled Text) kunnen veroorzaken, gebruikfont-displayin de@font-faceregel in CSS.swaptoont de tekst onmiddellijk met het systeemplatform en vervangt het na het laden.@font-face { font-family: 'MyCustomFont'; src: url('my-custom-font.woff2') format('woff2'); font-display: swap; /* Of fallback, optioneel, block */ } -
Toepassen van lichte sjablonen (op server-side rendering): Als je server-side rendering (SSR) gebruikt, kun je in HTML een minimale set stijlen inbedden die nodig zijn om de skelet van de pagina weer te geven.
-
Minimaliseren en combineren van CSS-bestanden: Verminder het aantal HTTP-verzoeken en de grootte van CSS-bestanden om de laadtijd te versnellen.
-
Gebruik build-tools: Webpack, Parcel en andere bundelaars kunnen het automatisch inbedden van kritieke stijlen en optimalisatie van CSS automatiseren.