Saya melihat sumber naskah pengguna greasemonkey dan memperhatikan hal-hal berikut dalam css mereka:
.even { background: #fff url(data:image/gif;base64,R0lGODlhBgASALMAAOfn5+rq6uvr6+zs7O7u7vHx8fPz8/b29vj4+P39/f///wAAAAAAAAAAAAAAAAAAACwAAAAABgASAAAIMAAVCBxIsKDBgwgTDkzAsKGAhxARSJx4oKJFAxgzFtjIkYDHjwNCigxAsiSAkygDAgA7) repeat-x bottom}
Saya dapat menghargai bahwa skrip greasemonkey ingin menggabungkan apa pun yang ada di dalam sumber sebagai lawan dari host di server, itu sudah cukup jelas. Tetapi karena saya belum pernah melihat teknik ini sebelumnya, saya mempertimbangkan penggunaannya dan tampaknya menarik karena sejumlah alasan:
- Ini akan mengurangi jumlah permintaan HTTP pada pemuatan halaman, sehingga meningkatkan kinerja
- Jika tidak ada CDN, maka itu akan mengurangi jumlah lalu lintas yang dihasilkan melalui cookie yang dikirim bersama gambar
- File CSS dapat di-cache
- File CSS dapat GZIPPED
Menimbang bahwa IE6 (misalnya) memiliki masalah dengan cache untuk gambar latar belakang, ini sepertinya bukan ide terburuk ...
Jadi, apakah ini praktik yang baik atau buruk, mengapa Anda TIDAK AKAN menggunakannya dan alat apa yang akan Anda gunakan untuk base64 menyandikan gambar?
pembaruan - hasil pengujian
pengujian dengan gambar: http://fragged.org/dev/map-shot.jpg - 133.6Kb
URL uji: http://fragged.org/dev/base64.html
file CSS khusus: http://fragged.org/dev/base64.css - 178.1Kb
Sisi server encoding GZIP
ukuran yang dihasilkan dikirim ke klien (uji komponen YSLOW): 59.3Kb
Menyimpan data yang dikirim ke browser klien dari: 74.3Kb
Bagus, tapi itu akan sedikit kurang berguna untuk gambar yang lebih kecil, kurasa.
UPDATE: Bryan McQuade, seorang insinyur perangkat lunak di Google, bekerja pada PageSpeed, menyatakan di ChromeDevSummit 2013 bahwa data: uris di CSS dianggap sebagai anti-pola pemblokiran render untuk memberikan CSS kritis / minimal selama pembicaraannya
#perfmatters: Instant mobile web apps
. Lihat http://developer.chrome.com/devsummit/sessions dan ingatlah itu - slide yang sebenarnya
PRO:
batas cache lebih banyak pada perangkat seluler ... CON:
beberapa gambar harus diperlakukan sebagai konten daripada presentasi sederhana dan dengan demikian lebih cocok untuk tag IMG HTML daripada gambar latar CSS.