marctrix: Frage zum Wiki-Artikel ‚Print-CSS‘

Beitrag lesen

problematische Seite

Hej Isch,

BTW: warum laden die Browser die print.css überhaupt, wenn die Seite auf einem Bildschirm angezeigt wird?

Dazu wäre vorweg anzumerken, dass wohl keine Seite zuerst auf einem Drucker ausgegeben wird, jede erscheint zuerst auf einem Bildschirm.

Ich kann mir schon Drucker mit Internet-Anschluss vorstellen - oder ein Skript, das HTML-Seiten automatisiert an einen Drucker ausgibt...

Es dürfte dann grundsätzlich sinnig sein, alle zur Seite gehörigen Elemente zur selben Zeit zu laden. Mal als realitätsfernes, aber dafür um so offensichtlicheres Beispiel: Werden die Druckdaten erst einen Monat nach den Bildschirmdaten geladen, passen erste möglicherweise nicht mehr zu letzteren.

Was meinst du mit "Bildschirmdaten" und "Druckdaten"? Styles?

Vielleicht sollen auch alle Daten so schnell wie möglich zur Verfügung stehen, wenn sie gebraucht werden – manche Browser laden ja sogar ganze Webseiten noch bevor sie überhaupt aufgerufen werden, einfach auf Verdacht hin.

Aber hier besteht kein Grund für einen Verdacht - die Styles werden per media="print" ja ausdrücklich als irrelevant für die Bildschirm-Darstellung gekennzeichnet.

Das "Vorladen" NACH dem Laden der zuerst benötigten Daten für die Bildschirmdarstellung kann sein. Klar. Aber vorher? - Guck Dir mal die Timeline an in den Entwicklerwerkzeugen eines Browsers. Die werden in der Reihenfolge geladen, wie sie im HTML angegeben werden (was wenig überraschend ist, da dies mit allen externen Dateien so gemacht wird - deswegen bindet man ja z. B. JavaScript so weit wie möglich am Seitenende ein).

In Kombination dürfte es vermutlich am Klügsten sein, Elemente, die eindeutig nur für den Druck gedacht sind, zwar sofort bei Seitenaufruf zu laden, aber erst ganz am Ende der Warteschlange.

Sehe ich genauso. Machen Browser aber nciht so.

Und ganz vielleicht hat sich darüber aber auch einfach niemand Gedanken gemacht.

Mindestens bei Google macht man sich eigentlich viel Gedanken über Performanz. Ich bi mir sicher es gibt einen (technischen) Grund. Den wüsste ich halt gern...

Macht es Sinn, die print.css aus Performance-Gründen am Seitenende einzubinden

Sowas hängt immer von der Seite ab. Was hast du davon, ein Element, das nur 1% des Gesamtvolumens der Seite ausmacht, zuletzt zu laden?

1% und einen HTTP-Request weniger VOR dem Laden der eigentlichen Inhalte. Außerdem kann das auf gut gemachten Seiten schon mehr sein (beim ersten Seitenaufruf, danach kommt das CSS eh aus dem Cache).

Der Flaschenhals liegt dann woanders und wenn die Inhalte so uninteressant sind, dass du beim Übertragen ein halbes Sekündchen sparen musst, um die Besucher zu halten …

Speed is a feature!

Ein halbes Sekündchen dauert das zum Glück nicht. Das wäre eine Katastrophe - du hast nur ein bis drei Sekunden INSGESAMT, bevor dir die Besucher weglaufen (zwei Sekunden musst du für den Verbindungsaufbau in mobilen Netzen einplanen, nach drei bis 5 Sekunden sind 50% Deiner Besucher futsch - nach dem verlinkten Artikel. Auf anderen Seiten habe ich schon von 3 Sekunden gehört, das heßt, da bleibt dir nur eine Sekunde um Deine Seite auf den Handy-Bildschirm zu bringen)! Die Bersucher, die verschwinden wissen ja nicht, was für tolle Inhalte du hast und werden es nie erfahren, weil die meisten auch nicht wiederkommen.

Auch Google belohnt schnelle Webseiten. Auch die Leute, die dich bei google nciht finden, wissen ncihts von Deinen Inhalten. Um nur zwei Gründe zu nennen. ;-)

Marc