Heim Web-Frontend CSS-Tutorial Eine kurze Analyse des CSS-Ladens und der Ladereihenfolge

Eine kurze Analyse des CSS-Ladens und der Ladereihenfolge

Dec 26, 2017 am 09:20 AM
css Befehl

Dieser Artikel ist sehr gut für Grundschüler und Freunde geeignet. Dieser Artikel stellt hauptsächlich das Laden und die Ladereihenfolge von CSS sowie die Analyse der aufgetretenen Probleme vor. Der Artikel gibt Ihnen auch eine ergänzende Einführung in die Ladereihenfolge von HTML, CSS und js. Freunde in Not können darauf verweisen, ich hoffe, es kann allen helfen.

Übliche CSS-Ladereihenfolge

Im Allgemeinen wird unser CSS-Stylesheet an der Spitze platziert. Um Anfragen zu reduzieren, führen wir normalerweise das CSS zusammen und komprimieren es. Derzeit wird unser CSS im Allgemeinen wie folgt geladen:

<head>
  <link rel="stylesheet" href="/all-of-my-styles.css">
</head>
<body>
  …content…
</body>
Nach dem Login kopieren

Das ist in Ordnung, aber es gibt mehrere Leistungsprobleme, die wir weiter optimieren können:

Probleme:

Alle CSS Alle werden in einer Datei zusammengeführt und komprimiert und am Kopf der Seite geladen. Vielleicht verwenden wir auf dem ersten Bildschirm nur ein wenig CSS, laden aber das gesamte CSS in den Header, was zu unangemessenem Laden und Ressourcenverschwendung führt. Wenn das CSS sehr groß ist, wirkt sich dies erheblich auf die Ladegeschwindigkeit der Webseite und die Anzeigegeschwindigkeit des ersten Bildschirms aus.

Eine andere Denkweise

Wenn keine Zusammenführung und keine einzige CSS-Komprimierungsreferenz vorhanden ist, ist die Dateigröße kleiner, aber die Anzahl der Anforderungen ist größer. Nach Abwägung der beiden und Durchführung eines Leistungstestvergleichs stellten wir fest, dass die folgende Schreibmethode tatsächlich schneller ist, als das gesamte CSS im Kopf zu platzieren und alles auf einmal zu laden, und dass die Geschwindigkeit der ersten Bildschirmanzeige schneller ist:

<head>
</head>
<body>
  <!-- HTTP/2 push this resource, or inline it, whichever&#39;s faster -->
  <link rel="stylesheet" href="/site-header.css">
  <header>…</header>
  <link rel="stylesheet" href="/article.css">
  <main>…</main>
  <link rel="stylesheet" href="/comment.css">
  <section class="comments">…</section>
  <link rel="stylesheet" href="/about-me.css">
  <section class="about-me">…</section>
  <link rel="stylesheet" href="/site-footer.css">
  <footer>…</footer>
</body>
Nach dem Login kopieren

Aber es gibt immer noch Leistung, die optimiert werden kann!

Zum Beispiel:

Nur ​​die Kopfzeile und die Artikel werden auf dem ersten Bildschirm angezeigt, andere Module werden nicht auf dem ersten Bildschirm angezeigt. Dann können wir das CSS anderer Module vollständig asynchron laden. Wie lade ich asynchron?

Siehe unten

loadCSS und Preload

Zum Thema Preload werden wir zwei Artikel veröffentlichen, die jeder lesen kann:

1. Pass rel="preload " Inhalt vorladen: https://developer.mozilla.org/zh-CN/docs/Web/HTML/Preloading_content

2. W3-Dokumentation vorladen: https://www.w3.org/TR /preload /

Für einige CSS, die nicht auf dem ersten Bildschirm geladen werden, können wir es wie folgt schreiben:

<link rel="preload" href="path/to/haorooms.css" as="style" onload="this.rel=&#39;stylesheet&#39;">
Nach dem Login kopieren

um zu verhindern, dass der Browser js verbietet. wir können es auch wie folgt schreiben:

<link rel="preload" href="path/to/haorooms.css" as="style" onload="this.rel=&#39;stylesheet&#39;">
Nach dem Login kopieren

Um zu vermeiden, dass einige Browser das Handler-Attribut rel='stylesheet' erneut aufrufen, empfehlen wir generell die folgende Schreibweise:

<link rel="preload" href="path/to/haorooms.css" as="style" onload="this.onload=null;this.rel=&#39;stylesheet&#39;">
<noscript><link rel="stylesheet" href="path/to/haorooms.css"></noscript>
Nach dem Login kopieren

Für eine bessere Kompatibilität mit rel=preload können Sie LoadCSS verwenden, Github-Adresse: https://github.com/filamentgroup/loadCSS

Daher können Sie ohne Berücksichtigung von Browserkompatibilitätsproblemen (unter Berücksichtigung von Kompatibilitätsproblemen) verwenden LoadCss, hier keine weitere Demonstration), wir haben den obigen Code erneut optimieren:

<head>
  <link rel="stylesheet" href="/首屏加载css.css">
  <link rel="preload" href="/不是首屏加载的css.css" as="style" onload="this.onload=null;this.rel=&#39;stylesheet&#39;">
</head>
<body>
  <header>…</header>
  <main>…</main>
  <section class="comments">…</section>
  <section class="about-me">…</section>
  <footer>…</footer>
</body>
Nach dem Login kopieren

PS: Werfen wir einen Blick auf die Ladereihenfolge von HTML, CSS und JS

<head lang="en">
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="css/*.css">
    <script src="js/*.js></script>
</head>
Nach dem Login kopieren

Die Ladereihenfolge von DOM-Dokumenten erfolgt von oben nach unten. Sequentielles Laden; DOM wird in den Link-Tag geladen

Das Laden der CSS-Datei erfolgt parallel zum Laden des DOM Das heißt, der Dom lädt und baut weiter, wenn das CSS geladen wird, und der dabei angetroffene CSS-Stil oder IMG sendet eine Anfrage an den Server. Nachdem die Ressource zurückgegeben wurde, wird sie dem entsprechenden hinzugefügt Position im Dom;

2. Das DOM wird in das Skript-Tag geladen

Da die js-Datei nicht parallel zum DOM geladen wird, müssen Sie auf die gesamte js-Datei warten Wenn die JS-Skriptdatei zu groß ist, kann dies zu Verzögerungen bei der Anzeige der Browserseite führen. Dieser Effekt wird als „Blockierungseffekt“ bezeichnet zu einer sehr schlechten Benutzererfahrung;

Und diese Funktion ist auch der Grund, warum $(document).ready(function(){ am Anfang der js-Datei }) oder (function(){}) oder benötigt wird window.onload, das heißt, die js-Datei wird erst ausgeführt, nachdem das DOM-Dokument geladen wurde, sodass es keine Probleme gibt, z. B. dass der DOM-Knoten nicht gefunden werden kann.

js blockiert andere Der Grund dafür Das Laden von Ressourcen besteht darin, dass der Browser den DOM-Baum neu erstellen muss

Voraussetzung: js ist ein externes Skript;

Fügen Sie defer="ture" im Skript-Tag hinzu, wodurch js und DOM parallel geladen werden, nachdem die Seite geladen wurde, sodass keine Blockierung erfolgt Fügen Sie im Scirpt-Tag async="ture" hinzu. Dieses Attribut teilt dem Browser mit, dass die JS-Datei asynchron geladen und ausgeführt wird, das heißt, sie hängt nicht von anderen JS- und CSS-Dateien ab garantiert, aber es kann auch parallel zum DOM-Effekt geladen werden.

Wenn die Defer-Attribute gleichzeitig verwendet werden, ist das Defer-Attribut ungültig das Scipt-Tag nach dem Body-Tag, damit es zu keinen Ladekonflikten kommt.

Verwandte Empfehlungen:

Ladereihenfolge und Ausführung von HTML-, CSS- und JS-Dateien

Seitenladereihenfolge problem_html /css_WEB- ITnose


Detaillierte Einführung in die Ausführungsergebnisse der Ladereihenfolge von Klassen in Java

Das obige ist der detaillierte Inhalt vonEine kurze Analyse des CSS-Ladens und der Ladereihenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie entferne ich den Standardstil in der Bootstrap -Liste? Wie entferne ich den Standardstil in der Bootstrap -Liste? Apr 07, 2025 am 10:18 AM

Der Standardstil der Bootstrap -Liste kann mit CSS -Override entfernt werden. Verwenden Sie spezifischere CSS -Regeln und -Sektors, befolgen Sie das "Proximity -Prinzip" und das "Gewichtsprinzip" und überschreiben Sie den Standardstil des Bootstrap -Standards. Um Stilkonflikte zu vermeiden, können gezieltere Selektoren verwendet werden. Wenn die Überschreibung erfolglos ist, passen Sie das Gewicht des benutzerdefinierten CSS ein. Achten Sie gleichzeitig auf die Leistungsoptimierung, vermeiden Sie eine Überbeanspruchung von! Wichtig und schreiben Sie prägnante und effiziente CSS -Code.

So verwenden Sie die Bootstrap -Taste So verwenden Sie die Bootstrap -Taste Apr 07, 2025 pm 03:09 PM

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

So ändern Sie Bootstrap So ändern Sie Bootstrap Apr 07, 2025 pm 03:18 PM

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

Wie ändere ich die Größe einer Bootstrap -Liste? Wie ändere ich die Größe einer Bootstrap -Liste? Apr 07, 2025 am 10:45 AM

Die Größe einer Bootstrap -Liste hängt von der Größe des Containers ab, der die Liste enthält, nicht die Liste selbst. Die Verwendung von Bootstraps Grid -System oder Flexbox kann die Größe des Containers steuern und dadurch indirekt die Listenelemente ändern.

So laden Sie Dateien auf Bootstrap hoch So laden Sie Dateien auf Bootstrap hoch Apr 07, 2025 pm 01:09 PM

Die Datei -Upload -Funktion kann über Bootstrap implementiert werden. Die Schritte sind wie folgt: Startstrap CSS und JavaScript -Dateien einführen; Dateieingabefelder erstellen; Datei -Upload -Schaltflächen erstellen; Behandeln Sie Datei -Uploads (verwenden Sie FormData, um Daten zu sammeln und dann an den Server zu senden). benutzerdefinierter Stil (optional).

Wie man Bootstrap Layout layer Wie man Bootstrap Layout layer Apr 07, 2025 pm 02:24 PM

Um Bootstrap zum Layout einer Website zu verwenden, müssen Sie ein Netzsystem verwenden, um die Seite in Container, Zeilen und Spalten zu unterteilen. Fügen Sie zuerst den Container hinzu, fügen Sie dann die Zeilen hinzu, fügen Sie die Spalten in der Zeile hinzu und fügen Sie schließlich den Inhalt in der Spalte hinzu. Die Responsive -Layout -Funktion von Bootstrap passt das Layout automatisch anhand von Haltepunkten (XS, SM, MD, LG, XL) an. Unter Verwendung von Responsive -Klassen können verschiedene Layouts unter verschiedenen Bildschirmgrößen erreicht werden.

So fügen Sie Bilder auf Bootstrap ein So fügen Sie Bilder auf Bootstrap ein Apr 07, 2025 pm 03:30 PM

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

So erstellen Sie ein Bootstrap -Framework So erstellen Sie ein Bootstrap -Framework Apr 07, 2025 pm 12:57 PM

Befolgen Sie die folgenden Schritte, um ein Bootstrap -Framework zu erstellen: Installieren Sie die Bootstrap über CDN oder installieren Sie eine lokale Kopie. Erstellen Sie ein HTML -Dokument und einen Link -Bootstrap -CSS zum & lt; Head & gt; Abschnitt. Fügen Sie die Bootstrap JavaScript -Datei zur & lt; body & gt; Abschnitt. Verwenden Sie die Bootstrap -Komponente und passen Sie das Stylesheet an Ihre Anforderungen an.

See all articles