Sven Rautenberg: Wie "gross" darf ein externes CSS sein?

Beitrag lesen

Moin!

Dennoch halte ich es für sinnvoll, die Dateien aufzuteilen. Erstens erleichtert es die Arbeit, wenn man die Auszeichnungen sinnvoll aufgeteilt hat wie in Textauszeichnung, Seitenlayout, IE-Hacks usw., zweitens muss der Browser so nicht alles neu runterladen wenn blos eine Anweisung in einer Datei geändert wurde.

Und ich halte es nicht für sinnvoll, das CSS aufzuteilen. Denn das vergrößert die zu übertragende Datenmenge teilweise doch erheblich, und außerdem vergrößert es die Serverlast.

Die Serverlast-Problematik ist schnell erklärt: Es ist für einen gut ausgelasteten Server unter Umständen schon ein Problem, plötzlich pro Seite noch einen, zwei oder drei Requests mehr zu verarbeiten.

Aber auch die Aufteilung in mehrere Dateien sorgt dafür, dass pro Schnitt mehr Daten übertragen werden müssen, und der Browser länger auf das Resultat warten muß. Denn HTTP ist ja nicht nur die Übertragung der reinen Nutzdaten (die werden durch die Teilung nicht mehr), sondern umfaßt immer auch einen HTTP-Header. Und der ist pro Datei nochmal rund 1 KB groß.

Wenn man eine 19-KB-Datei also in einer Datei überträgt, sind das zusammen 20 KB HTTP-Daten. In vier Stückchen wären es schon 23 KB - das sind, ohne Erweiterung des Nutzens, einfach mal 13% mehr Daten.

Außerdem ist die Wartezeit des Browsers zu bedenken: Ein Browser soll laut HTTP 1.1-RFC nur maximal vier gleichzeitige Verbindungen zu einem Server eröffnen, um darüber dann nacheinander alle Ressourcen einer Seite zu laden. Das bedeutet: Ein Request für EINE CSS-Datei ist viel schneller abgearbeitet (und läßt parallel noch Platz für das Laden von der HTML-Seite sowie zwei Bildern), als wenn das CSS aus VIER Dateien besteht (was neben der HTML-Seite alle drei übrigen Verbindungen auslastet, und man warten muß, bis eine davon frei wird, um den Request für die vierte Datei erst losschicken zu dürfen).

Sowas ist in Netzen mit hohen Bandbreiten und geringen Latenzzeiten natürlich irrelevant. Aber hat man immer solche idealen Bedingungen? Was ist mit Modemnutzern? GSM/UMTS? DSL (macht sicher keine Bandbreitenprobleme, aber die Latenzzeiten sind nicht unerheblich)?

- Sven Rautenberg

--
"Love your nation - respect the others."