483 Stimmen

Ist das Einbetten von Hintergrundbilddaten in CSS als Base64 eine gute oder schlechte Praxis?

Ich habe mir den Quellcode eines Greasemonkey-Userscripts angesehen und folgendes in der CSS-Datei festgestellt:

.even { background: #fff url(data:image/gif;base64,R0lGODlhBgASALMAAOfn5+rq6uvr6+zs7O7u7vHx8fPz8/b29vj4+P39/f///wAAAAAAAAAAAAAAAAAAACwAAAAABgASAAAIMAAVCBxIsKDBgwgTDkzAsKGAhxARSJx4oKJFAxgzFtjIkYDHjwNCigxAsiSAkygDAgA7) repeat-x bottom}

Ich kann verstehen, dass ein Greasemonkey-Skript alles, was es kann, im Quellcode bündeln möchte, anstatt es auf einem Server zu hosten, das ist offensichtlich genug. Aber da ich diese Technik vorher noch nicht gesehen hatte, habe ich ihre Verwendung in Erwägung gezogen, und sie scheint aus einer Reihe von Gründen attraktiv zu sein:

  1. Es reduziert die Anzahl der HTTP-Anfragen beim Laden der Seite und verbessert so die Leistung.
  2. Wenn kein CDN vorhanden ist, wird die Menge des Datenverkehrs, der durch Cookies erzeugt wird, die zusammen mit den Bildern gesendet werden, reduziert.
  3. CSS-Dateien können zwischengespeichert werden
  4. CSS-Dateien können GZIPPED sein

Wenn man bedenkt, dass der IE6 (zum Beispiel) Probleme mit dem Cache für Hintergrundbilder hat, scheint dies nicht die schlechteste Idee zu sein...

Also, ist dies eine gute oder schlechte Praxis, warum WOULDN'T Sie es verwenden und welche Tools würden Sie verwenden, um Base64 kodieren die Bilder?

update - ergebnisse der tests

Schön, aber für kleinere Bilder wird es wohl etwas weniger nützlich sein.

UPDATE: Bryan McQuade, ein Software-Ingenieur bei Google, der an PageSpeed arbeitet, hat in seinem Vortrag auf dem ChromeDevSummit 2013 geäußert, dass data:uris in CSS als ein Rendering-Blocking-Anti-Pattern für die Bereitstellung von kritischem/minimalem CSS betrachtet wird #perfmatters: Instant mobile web apps . Siehe http://developer.chrome.com/devsummit/sessions und behalten Sie das im Hinterkopf - aktuelle Folie

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X