Optimierung von CSS für schnellere Seitenaufrufe

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ein geradliniger Beitrag mit einigen Leistungsdaten von Tomas Pustelnik. Es ist eine gute Erinnerung daran, dass CSS ein entscheidender Teil der Betrachtung der Web-Performance ist, und das aus einem sehr guten Grund

Immer wenn [der Browser] auf eine externe Ressource (CSS, JS, Bilder usw.) trifft, weist er ihr eine Download-Priorität zu und initiiert ihren Download. Prioritäten sind wichtig, da einige Ressourcen für das Rendern einer Seite entscheidend sind (z. B. die Haupt-Stylesheet- und JS-Dateien), während andere weniger wichtig sein können (wie Bilder oder Stylesheets für andere Medientypen).

Im Fall von CSS ist diese Priorität normalerweise hoch, da Stylesheets zur Erstellung von CSSOM (CSS Object Model) erforderlich sind. Um eine Webseite zu rendern, muss der Browser sowohl DOM als auch CSSOM konstruieren.

Deshalb wird CSS oft als "blockierende" Ressource bezeichnet. Das ist bis zu einem gewissen Grad wünschenswert: Wir wollen kein Flackern von ungestylten Websites sehen. Aber wir erzielen echte Leistungssteigerungen, wenn wir CSS kleiner machen, da es schneller heruntergeladen, analysiert und angewendet werden kann.

Abgesehen von den Techniken in diesem Beitrag bin ich sicher, dass Befürworter von atomarem/Utility-CSS es lieben würden, darauf hinzuweisen, dass die Stylesheets aus diesen Ansätzen im Allgemeinen *viel* kleiner und damit performanter sind. CSS-in-JS-Ansätze bündeln manchmal Stile in Skripte, also fairerweise erhalten Sie oben einen kleinen Leistungsgewinn, indem Sie CSS dort nicht laden, aber einen Leistungsverlust durch die Vergrößerung der JavaScript-Bundle-Größe im Prozess. (Ich habe jedoch keine Studie mit einem fairen Vergleich gesehen, daher weiß ich nicht, ob es sich ausgleicht oder was.)

Direkter Link →