Der einfachste Weg, CSS asynchron zu laden

Avatar of Chris Coyier
Chris Coyier am

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

Scott Jehl

Eines der wirkungsvollsten Dinge, die wir tun können, um die Seitenleistung und -resilienz zu verbessern, ist das Laden von CSS auf eine Weise, die das Rendern der Seite nicht verzögert. Standardmäßig laden Browser externes CSS synchron, wobei das Rendern der Seite angehalten wird, während das CSS heruntergeladen und geparst wird – beides birgt potenzielle Verzögerungen.

<link rel="stylesheet" href="/path/to/my.css" media="print" onload="this.media='all'">

Sie sollten dies jedoch nicht einfach mit all Ihren Stylesheets machen, da Sie sonst einen ziemlich hässlichen "Flash of Unstyled Content" (FOUC) erhalten, während die Seite geladen wird. Sie müssen die Technik mit einer Methode kombinieren, um kritische CSS-Inhalte bereitzustellen. Wenn Sie das tun, ist es, wie Scotts Eröffnungssatz sagte, ziemlich wirkungsvoll.

Interessante Nebenbemerkung... auf unserer Pen Editor-Seite bei CodePen hatten wir ein FOUC-Problem (Warnung, in diesem Video gibt es einen sehr kurzen Weißblitz)

Das Merkwürdige daran ist, dass wir unser CSS ganz normal in <link>-Tags im <head> laden, was das Rendern blockieren und FOUC verhindern sollte. Aber es gibt einen schwer reproduzierbaren Fehler. Glücklicherweise haben wir eine seltsame Lösung gefunden, so dass wir jetzt ein leeres <script>-Tag im <head> haben, das es irgendwie löst.

Direkter Link →