Я дивився на джерело користувальницького сценарію жирмоскі і помітив у своєму css:
.even { background: #fff url(data:image/gif;base64,R0lGODlhBgASALMAAOfn5+rq6uvr6+zs7O7u7vHx8fPz8/b29vj4+P39/f///wAAAAAAAAAAAAAAAAAAACwAAAAABgASAAAIMAAVCBxIsKDBgwgTDkzAsKGAhxARSJx4oKJFAxgzFtjIkYDHjwNCigxAsiSAkygDAgA7) repeat-x bottom}
Я можу оцінити, що сценарій жирного ключа хотів би зв'язати все, що може, в межах джерела, на відміну від розміщення його на сервері, це досить очевидно. Але оскільки я раніше не бачив цієї методики, я розглянув її використання і це здається привабливим з кількох причин:
- Це зменшить кількість запитів HTTP при завантаженні сторінки, тим самим підвищивши продуктивність
- Якщо немає CDN, це зменшить кількість трафіку, генерованого за допомогою файлів cookie, що надсилаються поряд із зображеннями
- Файли CSS можна кешувати
- CSS-файли можна GZIPPED
Зважаючи на те, що IE6 (наприклад) має проблеми з кешем для фонових зображень, схоже, це не найгірша ідея ...
Отже, це хороша чи погана практика, чому НЕ БУДЕ ви її використовуєте та якими інструментами ви б скористалися для base64 кодування зображень?
оновлення - результати тестування
тестування із зображенням: http://fragged.org/dev/map-shot.jpg - 133,6 Кб
тестова URL-адреса: http://fragged.org/dev/base64.html
виділений файл CSS: http://fragged.org/dev/base64.css - 178,1 Кб
Сторона сервера кодування GZIP
отриманий розмір, надісланий клієнту (тест компонентів YSLOW): 59,3 Кб
Збереження даних, що надсилаються до клієнтського браузера: 74,3 Кб
Приємно, але це буде трохи менш корисно для менших зображень, я думаю.
ОНОВЛЕННЯ: Брайан Маккуад, інженер програмного забезпечення в Google, який працює над PageSpeed, висловив на ChromeDevSummit 2013, що дані: uris в CSS вважається антидіаграмою, що блокує візуалізацію, для доставки критичних / мінімальних CSS під час розмови
#perfmatters: Instant mobile web apps
. Дивіться сторінку http://developer.chrome.com/devsummit/sesions і пам’ятайте про це - фактичний слайд
PRO:
обмежень кешу на стільникові пристрої ... CON:
деякі зображення слід розглядати як контент, а не просту презентацію, і тому вони краще підходять для тегів HTML IMG, ніж фонові зображення CSS.