Hi Mathias!
Die Anpassungen für verschiedene MQs sollten i.d.R. nicht allzu viel CSS-Code sein, was spricht dagegen, den gesamten CSS-Code samt allen MQs in einem Stylesheet zu übertragen?
Praktisch gesehen ist das derzeit die beste Methode, das will ich nicht bezweifeln. Wenn man die Styles sinnvoll aufbaut, dann gibt es flexible Basis-Styles und relativ kleine Anpassungen mit Media-Queries.
Und die wären noch viel kleiner, wenn es "Lösungen" für die Anpassung von Schriftgrößen gäbe!
Trotzdem, ideal und zukunftssicher ist es nicht, sämtlichen Code zum Client zu pushen. Man tut das nur, weil es unter derzeitigen Netzwerkbedingungen am schnellsten ist und für Webautoren relativ einfach ist. Die Tools, die wir verwenden, sind für das einmalige Bundling, Minification und Gzip-Auslieferung ausgelegt. Sie sind nicht für das Schnüren von tatsächlich benötigten Paketen on-the-fly ausgelegt.
Und dieses "Schnüren" soll dann wie erfolgen? Aber nicht "per Hand", oder?
CSS- und JavaScript-Code ist immer sehr kontextbezogen. Die Startseite eine Website oder Web-App verwendet vielleicht 10% des geladenen CSS- und JavaScript-Codes. Das hat dazu geführt, dass Websites immer schwergewichtiger werden. Vor allem bei umfangreichen Websites macht es keinen Sinn, beim Besuchen der Startseite Unmengen an Code zu laden, der mit großer Wahrscheinlichkeit nie gebraucht wird.
Leider fehlt in der verlinkten Statistik eine Angabe dazu, in wie viel Prozent der Fälle die Startseite auch die tatsächliche Einstiegsseite ist. Aber ich bin mir sicher, du weißt worauf ich hinaus will.
Im übrigen tragen bspw. die Macher von jquery & Co. zu dem Übel bei. Ständig neue Versionen und dutzende verschiedene CDNs machen (effizientes) Caching quasi unmöglich.
Wenn sich also die Netzwerkbedingungen verbessern, sollte man sich über sinnvolles Lazy-Loading Gedanken machen. Googles Module-Server für JavaScript geht in diese Richtung. Einfachere rein clientseitige Lösungen wie Require.js erlauben ebenfalls Pakete, die aus CSS und JavaScript bestehen.
Ich bin nach wie vor nicht davon überzeugt, dass eine "Zerstückelung" wirklich Vorteile bringt. Vielleicht für den Fall, dass ein Besucher tatsächlich nur _eine_Seite einer Webpräsenz besucht.
Aber spätestens beim Aufruf einer zweiten Seite, oder einem Wiederbesuch einer Site, können Browser- und Application Cache ihre Vorzüge voll ausspielen - eine sinnvolle Nutzung vorausgesetzt.
Gruß Gunther