Jetzt mal vom HTTP-Overhead abgesehen.
Und von den Latenzen im Mobilfunknetz auch?
Ja, ich hatte davon ebenfalls abgesehen.
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.
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.
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.
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.
Mathias