Nello script precedente abbiamo visto come, all'interno di una pagina web, la creazione di componenti a video sia soggetta a tre differenti fasi: Reflow, Repaint, Composition. Di cui la prima, il reflow, è molto impattante in termini di tempo e risorse per essere portata a compimento.
Ci sono però alcuni accorgimenti che possiamo applicare per migliorare il tempo di applicazione degli stili, o addirittura quasi annullarlo.
Per il primo step è richiesto l'utilizzo del nostro buonsenso: evitiamo i selettori CSS complessi. La modalità di scrittura di un selettore ci permette di essere sia generici che estremamente puntuali rispetto all'elemento a cui applicare lo stile. Ma va considerato che più la regola è precisa, più il rendering della pagina richiederà tempo, dato che verranno fatte molte più verifiche.
/* non ottimizato */
html body div.container ul li button:hover {
color: red;
}
/* ottimizato */
button:hover {
color: red;
}Se l'effetto di hover su un bottone riulta troppo generico, è comunque consigliabile applicare una classe al bottone a cui applicare lo stile, rispetto al mantenere la catena di CSS.
/* ottimizato con classe*/
.btn-primary:hover {
color: red;
}Anche per questo caso dobbiamo però trovare un limite adeguato, in modo da mantenere un buon compromesso tra utilizzo specifico e modularità, dato che, anche troppe classi applicate ad un solo elemento, richiedono molto calcolo da parte del browser per capire come verrà disegnato.
<!-- non ottimizzato --> <button class="btn-red btn-hover-red btn-border-black btn-mouse-pointer btn-active-orange btn-font-weigth-bold"></button> <!-- ottimizzato con una classe che incorpora tutti gli stili --> <button class="btn-danger"></button>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Definire il colore di una scrollbar HTML tramite CSS
Importare repository da Bitbucket a GitHub Enterprise Cloud
Ricevere notifiche sui test con Azure Load Testing
Raggruppare risorse in .NET Aspire
Gestire progetti .NET + React in .NET Aspire
Ridimensionamento automatico input tramite CSS
Gestione delle scrollbar dinamiche in HTML e CSS
Esporre un server MCP con Azure API Management
Evitare memory leaks nelle closure JavaScript
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Esporre un server MCP esistente con Azure API Management


