I file CSS sono risorse che bloccano la visualizzazione: devono essere caricati ed elaborati prima che il browser visualizzi la pagina. Pagine web contenenti fogli di stile inutilmente grandi richiedono più tempo per il rendering.
In questa guida, scoprirai come rimandare i file CSS non critici per ottimizzare Percorso di rendering critico e migliora First Contentful Paint (FCP).
Esempio: caricamento di CSS non ottimale
L'esempio seguente contiene un accordion con tre paragrafi nascosti di testo, ognuno dei quali ha uno stile con una classe diversa:
Questa pagina richiede un file CSS con otto classi, ma non tutte necessario per rendere "visibile" contenuti.
L'obiettivo di questa guida è ottimizzare questa pagina in modo che solo gli stili critici vengono caricati in modo sincrono, mentre le altre (inclusi gli stili di paragrafo) vengono caricati in modo senza blocchi.
Misura
Esegui Lighthouse sulla pagina e vai al sezione Rendimento.
Il report mostra la metrica First Contentful Paint con valore "1" e l'opportunità Eliminare le risorse di blocco della visualizzazione, puntando alle File style.css:
di Gemini Advanced.Per visualizzare in che modo questo CSS blocca il rendering:
- Apri la pagina in Chrome.
- Premi
Control+Shift+J
(oCommand+Option+J
su Mac) per aprire DevTools. - Fai clic sulla scheda Rendimento.
- Nel riquadro Prestazioni, fai clic su Ricarica.
Nella traccia risultante, noterai che l'indicatore FCP è posizionato immediatamente al termine del caricamento del CSS:
Ciò significa che il browser deve attendere che tutti i CSS vengano caricati ed elaborati prima di dipingere un singolo pixel sullo schermo.
Ottimizza
Per ottimizzare questa pagina, devi sapere quali corsi sono considerati critici. Per determinarlo, utilizza lo strumento Copertura:
- In DevTools, apri il menu Comando
premendo
Control+Shift+P
oCommand+Shift+P
(Mac). - Digita "Copertura" e seleziona Mostra copertura.
- Fai clic su Ricarica per ricaricare la pagina e iniziare ad acquisire la copertura.
Fai doppio clic sul report per visualizzare i dettagli:
- I corsi contrassegnati in verde sono fondamentali. Il browser le ha necessarie per eseguire il rendering contenuti visibili, inclusi il titolo, i sottotitoli e i pulsanti di accordion.
- I corsi contrassegnati in rosso sono solo non critici interessa i contenuti non immediatamente visibili, come i paragrafi nascosti.
Con queste informazioni, ottimizza il CSS in modo che il browser possa iniziare l'elaborazione gli stili critici subito dopo il caricamento della pagina e rimandare gli stili CSS non critici per un secondo momento:
Estrai le definizioni delle classi contrassegnate in verde nel report Copertura e inserisci queste classi in un blocco
<style>
all'inizio della pagina:<style type="text/css"> .accordion-btn {background-color: #ADD8E6;color: #444;cursor: pointer;padding: 18px;width: 100%;border: none;text-align: left;outline: none;font-size: 15px;transition: 0.4s;}.container {padding: 0 18px;display: none;background-color: white;overflow: hidden;}h1 {word-spacing: 5px;color: blue;font-weight: bold;text-align: center;} </style>
Carica il resto delle classi in modo asincrono applicando quanto segue motivo:
<link rel="preload" href="styles.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> <noscript><link rel="stylesheet" href="styles.css"></noscript>
Non si tratta del metodo standard per caricare CSS. Ecco come funziona:
link rel="preload" as="style"
richiede il foglio di stile in modo asincrono. Tu Puoi scoprire di più supreload
nella guida al precaricamento degli asset critici.- L'attributo
onload
inlink
consente al browser di elaborare il CSS quando termina il caricamento del foglio di stile. - "null" dopo l'utilizzo, il gestore
onload
consente ad alcuni browser di evitare richiamo del gestore quando cambia l'attributorel
. - Il riferimento al foglio di stile all'interno dell'elemento
noscript
fornisce un di riserva per i browser che non eseguono JavaScript.
La pagina risultante ha esattamente lo stesso aspetto anche quando la maggior parte degli stili viene caricata in modo asincrono. Ecco come gli stili incorporati e la richiesta asincrona al file CSS appaiono nell'HTML file:
Monitoraggio
Utilizza DevTools per eseguire un'altra analisi del rendimento sul pagina ottimizzata.
L'indicatore FCP viene visualizzato prima che la pagina richieda il CSS. Ciò significa che l'indicatore browser non deve attendere il caricamento del codice CSS prima di eseguire il rendering della pagina:
Come ultimo passaggio, esegui Lighthouse sulla pagina ottimizzata.
Nel report puoi notare che la pagina FCP è stata ridotta di 0, 2 s (ossia il 20% miglioramento!):
Il suggerimento Elimina le risorse di blocco della visualizzazione non viene più visualizzato in Opportunità, che si trova invece nella sezione Controlli superati:
Passaggi successivi e riferimenti
In questa guida, hai imparato a rimandare i file CSS non critici estraendo manualmente il codice inutilizzato nella pagina. Per ambienti di produzione più complessi, estrai la guida CSS fondamentale illustra alcuni dei gli strumenti più popolari per estrarre CSS critici e include un codelab per vedere come lavorare in pratica