Dieser Artikel führt Sie durch CSS und Netzwerkleistung. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Dies ist ein ziemlich langer Artikel, der eine relativ umfassende Einführung in die relevanten Kenntnisse des CSS-Ladens bietet. Aufgrund des begrenzten Niveaus des Übersetzers wird empfohlen, den Originaltext auch direkt zu lesen Die Übersetzung wird Ihnen hilfreich sein, danke ~ Das Folgende ist der Text:
Vielen Dank, ich werde seit mehr als zehn Jahren als CSS-Magier bezeichnet, aber in letzter Zeit gibt es nicht viele CSS-bezogene Artikel auf dem Blog. Wir präsentieren Ihnen einen Artikel, der die beiden Hauptthemen CSS und Leistung kombiniert.
CSS ist einer der Schlüsselfaktoren beim Rendern von Seiten (wenn auf der Seite externes Link-CSS vorhanden ist), wartet der Browser, bis das gesamte CSS heruntergeladen und analysiert wurde, bevor er die Seite rendert. Jegliche Verzögerungen im kritischen Pfad wirken sich auf die Zeit bis zum ersten Bildschirm aus. Daher müssen wir das CSS so schnell wie möglich auf das Gerät des Benutzers übertragen, da der Benutzer sonst nur einen leeren Bildschirm sieht (bis die Seite gerendert wird).
Was ist die größte Frage?
Im Großen und Ganzen ist CSS der Schlüssel zur (Rendering-)Leistung. Dies liegt daran, dass:
Der Browser die Seite erst rendert, wenn der Rendering-Baum erstellt wurde CSSOM ;
DOM ist das Ergebnis von HTML plus (synchronen) blockierenden JavaScript-Vorgängen (nach DOM);
CSSOM ist das Ergebnis von CSS-Regeln, die auf DOM angewendet werden;
JavaScript nicht blockierend zu machen Einfach: Fügen Sie einfach das Async- oder Defer-Attribut hinzu. Relativ gesehen ist es schwieriger, CSS asynchron zu laden. Denken Sie also an diese Faustregel: (Idealerweise)
Langsamster Stil Die Downloadzeit des Tabelle bestimmt die Seitenrenderingzeit
.
Basierend auf den obigen Überlegungen müssen wir DOM und CSSOM so schnell wie möglich erstellen. Normalerweise wird das DOM relativ schnell erstellt und die erste Anfrage, auf die der Server antwortet (wenn eine Seite angefordert wird), ist ein HTML-Dokument. Aber im Allgemeinen existiert CSS als Unterressource von HTML, sodass die Erstellung von CSSOM normalerweise länger dauert.
In diesem Artikel erkläre ich, warum CSS einen Netzwerkengpass darstellt (entweder für sich selbst oder für andere Ressourcen) und wie man ihn überwinden kann, um den kritischen Pfad zu verkürzen und die Wartezeit vor dem ersten Rendern zu reduzieren.
Verwenden Sie kritisches CSS
Wenn die Bedingungen es zulassen, ist die Verwendung des kritischen CSS-Modus (kritisches CSS) die effektivste Möglichkeit, die Wartezeit vor dem Rendern zu verkürzen: Finden Sie heraus, welche Stile für das erste Rendern erforderlich sind (normalerweise die Stile, die sich auf … beziehen). auf dem ersten Bildschirm), integrieren Sie sie in das Tag <head> und laden Sie andere Stile asynchron.
Obwohl dies sehr effektiv ist, ist es nicht einfach zu implementieren: Hochdynamische Websites (Anmerkung des Übersetzers: wie SPA) haben normalerweise Schwierigkeiten beim Extrahieren der Stile, die sich auf den ersten Bildschirm beziehen. Der Extraktionsprozess muss automatisiert werden Der erste Bildschirm muss anders sein. Zu den Problemen gehören Annahmen über den angezeigten oder verborgenen Zustand von Elementen, einige Randfälle, die schwer zu handhaben sind, und zugehörige Tools, die noch unausgereift sind. Dies wird komplizierter, wenn Ihr Projekt recht groß ist oder historisches Gepäck aufweist.
Code basierend auf Medientyp aufteilen
Wenn es schwierig ist, wichtige CSS-Strategien im Projektteam umzusetzen, können Sie versuchen, CSS-Dateien basierend auf Medienabfragen aufzuteilen auch eine verlässliche Strategie. Nach der Ausführung dieser Strategie verhält sich der Browser wie folgt:
Laden Sie CSS-Dateien herunter, die dem aktuellen Kontext (Gerät, Bildschirmgröße, Auflösung, Ausrichtung usw.) entsprechen, mit sehr hoher Priorität und blockieren Sie den kritischen Pfad
Mit sehr niedrige Priorität Die Priorität des Herunterladens von CSS-Dateien, die nicht in den aktuellen Kontext passen, blockiert den kritischen Pfad nicht.
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn