11
Ich frage dann öfters auch gezielt nach "pros and cons", damit beide Seiten beleuchtet werden.
Das habe ich gelegentlich auch schon gemacht.
Ich lese auch öfters die verlinkten Quellen zu den Aussagen, finde dort aber sehr häufig nur sehr indirekt die Aussagen der KI wieder.
Also behalte ich als Einheit "em" wie im Stylesheet bei und auch die gleiche MQ-Grenze des 3. MQ, das bei 670px/41.875em endet.
Dass die Nachbildung der Stylesheet-MQs neben "em" und 670px/41.875rem aber auch die Notierung aller 5 MQ einzeln mit jeweiligen Viewports umfassen müsste, dafür gibt es aber keinen Grund, oder? Dann müsste ich statt der 2 preload-tags mit 2 MQ insgesamt 6 preload-tags machen (5 MQ und desktop). Obwohl es nur 2 Fälle sind, d.h., bis 670px (3. MQ) der eine Schrift-preload, ab 671 der andere.
Noch eine andere Sache.
Wegen der Reihenfolge mehrerer webfont-preloads plus headerbild-preload im head untereinander habe ich - ganz ausführlich - gefragt:
Spielt die Reihenfolge mehrerer preload-tags im head eine Rolle? Im head stehen mehrere preload-tags für mehrere webfonts und ein headerbild, alle werden above the fold benötigt. Das headerbild ist im design ganz oben das erste Element.
Die KI kommt zum gleichen Ergebnis wie ich, nämlich das Bild-preload vor den webfont-preloads im head zu platzieren.
Das (gar nicht gefragte) Stylesheet will sie aber VOR allen preloads sehen, bei mir kommt es direkt nach den preloads.
Wahrscheinlich hat meine Reihenfolge einen Grund (den ich in einem Berg von Papier erst nachschauen müsste) und wenn ich die KI nach ihrem Grund frage, hat sie natürlich drei wirklich gut klingende Gründe für ihre CSS-Priorität im head vor den preloads: 1. Der Browser müsse erst mal per CSSOM die Seitenstruktur verstehen. 2. Evtl. werden überflüssige, gar nicht gebrauchte webfonts geladen. 3. Ein korrekt platziertes CSS-File stellt sicher, dass die Schriftarten erst dann priorisiert werden, wenn sie auch wirklich zum Rendern des Textes erforderlich sind.
Mal ganz ohne KI, würdest du spontan das ext. Stylesheet im head vor den preload-tags oder danach platzieren?
Als ich die KI nochmal frage, warum es besser ist, das Stylesheet im head nach den preloads zu platzieren, findet sie das plötzlich sehr gut und begründet es ganz ausführlich:
Webfonts (wie Google Fonts) werden oft innerhalb eines CSS-Stylesheets via @font-face definiert. [1, 2]
• Ohne Preload: Der Browser lädt das CSS, parst es, entdeckt den Font, und erst dann beginnt der Download der Schriftart. Das führt oft zu "Flash of Unstyled Text" (FOUT) oder "Flash of Invisible Text" (FOIT).
• Mit Preload vor CSS: Der Browser sieht den preload-Tag für den Font sofort beim Einlesen des HTMLs und startet den Download parallel zum Download des Stylesheets. Wenn das CSS dann bereit ist, ist der Font oft schon geladen. [1, 2, 3, 4, 5]
2. Priorisierung kritischer Bilder (LCP-Optimierung)
Bilder, die im CSS als Hintergrundbild definiert sind, werden vom Browser sehr spät entdeckt. [1]
• Preloading von kritischen Bildern (z. B. Hero-Images, Banner) sorgt dafür, dass diese bereits geladen werden, während das Stylesheet noch heruntergeladen wird.
• Dadurch wird der "Largest Contentful Paint" (LCP) – ein wichtiger Google-Performance-Messwert – deutlich verbessert. [1, 2]
•
3. Warum das Stylesheet danach kommt
• Preload-Priorität: preload weist den Browser an, eine Ressource mit hoher Priorität herunterzuladen.
• Rendering-Blockierung: Externe CSS-Dateien blockieren das Rendering der Seite, bis sie vollständig geladen sind.
• Ergebnis: Durch die Platzierung der Preloads vor dem Stylesheet (und anderen blockierenden Ressourcen) teilt man dem Browser mit: "Lade diese wichtigen Dinge sofort, und dann kümmere dich um das Stylesheet, das die Seite darstellt." [1, 2]
Zusammenfassend: Die Preloads vor dem Stylesheet sorgen dafür, dass kritische Assets (Schriften/Bilder) nicht auf das Parsen des CSS warten müssen, sondern parallel dazu heruntergeladen werden, was die Ladezeit der Seite verbessert.
Ich weiß nicht, wie ich das durch detaillierteres Fragen noch aufklären sollte. Irgendwie ist das alles richtig.
