Sobes.tech
Middle

Hoe voorkom je het probleem van 'flash of unstyled content' (FOUC)?

sobes.tech AI

Antwoord van AI

De meest effectieve methoden:

  1. 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>
    
  2. 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>
    
  3. Gebruik font-display: swap of vergelijkbare eigenschappen voor lettertypen: Voor aangepaste lettertypen die FOUT (Flash of Unstyled Text) kunnen veroorzaken, gebruik font-display in de @font-face regel in CSS. swap toont 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 */
    }
    
  4. 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.

  5. Minimaliseren en combineren van CSS-bestanden: Verminder het aantal HTTP-verzoeken en de grootte van CSS-bestanden om de laadtijd te versnellen.

  6. Gebruik build-tools: Webpack, Parcel en andere bundelaars kunnen het automatisch inbedden van kritieke stijlen en optimalisatie van CSS automatiseren.