Vielleicht weiß jeder, dass die JS-Ausführung die Analyse und Darstellung des DOM-Baums blockiert. Blockiert also das Laden von CSS die Analyse und Darstellung des DOM-Baums? Lassen Sie es uns als Nächstes gemeinsam analysieren. Prinzipanalyse Warum also tritt das oben beschriebene Phänomen auf? Lassen Sie uns es anhand des Rendering-Prozesses des Browsers analysieren. Verschiedene Browser verwenden unterschiedliche Kernel, daher sind auch ihre Rendering-Prozesse unterschiedlich. Derzeit gibt es zwei Haupt WebKit-Rendering-Prozess Gecko-Rendering-Prozess Aus den beiden Flussdiagrammen oben können wir ersehen, dass der Browser-Rendering-Prozess wie folgt abläuft:
Aus dem Prozess können wir sehen
DOMContentLoaded Für Browser gibt es zwei Hauptereignisse zum Laden von Seiten: eines ist DOMContentLoaded und das andere ist onLoad. Zu onLoad gibt es nicht viel zu sagen. Es wird erst ausgelöst, nachdem alle Ressourcen der Seite geladen sind. Zu diesen Ressourcen gehören CSS, JS, Bilder, Videos usw. DOMContentLoaded wird, wie der Name schon sagt, ausgelöst, wenn der Inhalt der Seite analysiert wird. Wie wir oben besprochen haben, blockiert CSS die Dom-Darstellung und die JS-Ausführung, und JS blockiert die Dom-Analyse. Dann können wir davon ausgehen, dass
Testen wir zunächst den ersten Fall: <!DOCTYPE html> <html lang="de"> <Kopf> <title>CSS-Blockierung</title> <meta charset="UTF-8"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1"> <Skript> document.addEventListener('DOMContentLoaded', Funktion() { console.log('DOMContentLoaded'); })  </Skript> <link href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap.css" rel="stylesheet"> </Kopf> <Text> </body> </html> Die experimentellen Ergebnisse sind wie folgt: Aus dem animierten Bild können wir erkennen, dass das Ereignis DOMContentLoaded ausgelöst wurde, bevor das CSS geladen wurde. Weil hinter dem CSS kein JS-Code steckt. Als nächstes testen wir den zweiten Fall. Er ist ganz einfach. Fügen Sie einfach eine Codezeile nach dem CSS hinzu. <!DOCTYPE html> <html lang="de"> <Kopf> <title>CSS-Blockierung</title> <meta charset="UTF-8"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1"> <Skript> document.addEventListener('DOMContentLoaded', Funktion() { console.log('DOMContentLoaded'); }) </Skript> <link href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap.css" rel="stylesheet"> <Skript> console.log('Bin ich schon dran?'); </Skript> </Kopf> <Text> </body> </html> Wir können sehen, dass das Ereignis DOMContentLoaded erst ausgelöst wird, nachdem das Laden des CSS abgeschlossen ist. Daher können wir Folgendes schlussfolgern:
Zusammenfassen Aus dem oben Gesagten können wir folgende Schlussfolgerungen ziehen:
Um zu vermeiden, dass Benutzer lange Zeit einen weißen Bildschirm sehen, sollten wir die CSS-Ladegeschwindigkeit so weit wie möglich erhöhen, beispielsweise mithilfe der folgenden Methoden:
Dies ist das Ende dieses Artikels darüber, ob CSS die Seitendarstellung blockiert. Weitere Informationen dazu, wie CSS die Seitendarstellung blockiert, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! |
<<: Mein CSS-Framework – base.css (Browser-Standardstil zurücksetzen)
>>: Details zu den Überwachungseigenschaften der Uhr in Vue
Schauen Sie sich zunächst das Wirkungsdiagramm an...
Was ich heute teilen möchte, ist die Verwendung v...
Dieser Artikel veranschaulicht anhand eines Beisp...
Dieser Artikel beschreibt anhand eines Beispiels ...
Der Zweck der Cache-Verwendung besteht darin, den...
In diesem Artikel erfahren Sie mehr über die Inst...
In diesem Artikelbeispiel wird der spezifische Co...
Bild-Tag <IMG> einfügen Die farbenfrohen Web...
Vorwort Manchmal habe ich das Gefühl, dass die na...
Wenn man online nach Methoden sucht, um Angular -...
Inhaltsverzeichnis Datenvolumen Anonyme und benan...
Inhaltsverzeichnis Was ist LocalStorage Was ist S...
Da ich auf einen neuen Computer gewechselt bin, m...
1. CSV-Datei importieren Verwenden Sie den folgen...
Im Projekt (nodejs) müssen mehrere Daten gleichze...