‚Faster‘ ist eine harte Sache zu beantworten, weil es viele mögliche Interpretationen und Situationen sind:
Base64-Codierung wird das Bild um ein Drittel zu erweitern, die Bandbreitennutzung erhöhen. Auf der anderen Seite wird durch die Aufnahme in die Datei ein weiterer GET-Umlauf zum Server entfernt. Eine Pipe mit hohem Durchsatz, aber geringer Latenzzeit (z. B. eine Internetverbindung über das Internet) wird eine Seite mit eingebetteten Bildern wahrscheinlich schneller laden, als wenn Sie unterschiedliche Bilddateien verwenden würden. Selbst auf meiner (ländlichen, langsamen) DSL-Leitung brauchen Standorte, die viele Rundreisen erfordern, viel länger zum Laden als solche, die nur relativ groß sind, aber nur wenige GETs benötigen.
Wenn Sie bei jeder Anfrage die base64-Codierung aus den Quelldateien durchführen, verbrauchen Sie mehr CPU, schlagen Ihre Datencaches usw., was die Antwortzeit Ihres Servers beeinträchtigen könnte. (Natürlich können Sie immer Memcached oder ähnliches verwenden, um dieses Problem zu lösen).
Dadurch werden natürlich die meisten Formen des Caching verhindert, was sehr schaden kann, wenn das Bild häufig angezeigt wird - ein Logo, das auf jeder Seite angezeigt wird und normalerweise vom Browser (oder einem Proxy) zwischengespeichert werden kann Cache wie Tintenfisch oder was auch immer) und einmal im Monat angefordert. Es verhindert auch die vielen Optimierungen Webserver für die Bereitstellung von statischen Dateien mit Kernel-APIs wie sendfile (2).
Grundsätzlich wird dies in bestimmten Situationen helfen, und in anderen verletzen. Sie müssen herausfinden, welche Situationen für Sie wichtig sind, bevor Sie wirklich herausfinden können, ob dies ein lohnender Trick für Sie ist.
Sie werden stark von der reduzierten Anzahl von HTTP-Anforderungen profitieren, auch. –
Definieren wir "schneller" wie: Die Zeit, die ein Benutzer benötigt, um eine vollständig gerenderte HTML-Webseite zu sehen. – Tim