Bir greasemonkey usercript kaynağına bakıyordu ve kendi css aşağıdaki fark ettim:
.even { background: #fff url(data:image/gif;base64,R0lGODlhBgASALMAAOfn5+rq6uvr6+zs7O7u7vHx8fPz8/b29vj4+P39/f///wAAAAAAAAAAAAAAAAAAACwAAAAABgASAAAIMAAVCBxIsKDBgwgTDkzAsKGAhxARSJx4oKJFAxgzFtjIkYDHjwNCigxAsiSAkygDAgA7) repeat-x bottom}
Bir greasemonkey betiğinin bir sunucuda barındırmak yerine kaynak içinde yapabileceği her şeyi paketlemek isteyeceğini takdir edebilirim, bu yeterince açık. Ancak bu tekniği daha önce görmediğim için, kullanımını düşündüm ve birkaç nedenden dolayı çekici görünüyor:
- Sayfa yüklemesinde HTTP isteklerinin miktarını azaltarak performansı artırır
- CDN yoksa, görüntülerin yanında gönderilen çerezlerden kaynaklanan trafik miktarını azaltır.
- CSS dosyaları önbelleğe alınabilir
- CSS dosyaları GZIPPED olabilir
IE6'nın (örneğin) arka plan görüntüleri için önbellekle ilgili sorunları olduğu düşünüldüğünde, bu en kötü fikir değil gibi görünüyor ...
Peki, bu iyi veya kötü bir uygulama, neden kullanmalısınız ve görüntüleri base64 için kodlamak için hangi araçları kullanmalısınız?
güncelleme - test sonuçları
görüntü ile test: http://fragged.org/dev/map-shot.jpg - 133.6Kb
test URL'si: http://fragged.org/dev/base64.html
özel CSS dosyası: http://fragged.org/dev/base64.css - 178.1Kb
GZIP kodlama sunucusu tarafı
Ortaya çıkan boyut istemciye gönderilir (YSLOW bileşenleri testi): 59.3Kb
İstemci tarayıcısına gönderilen verilerin kaydedilmesi: 74.3Kb
Güzel, ama daha küçük görüntüler için biraz daha az yararlı olacağını düşünüyorum.
GÜNCELLEME: Google'da PageSpeed üzerinde çalışan bir yazılım mühendisi olan Bryan McQuade, ChromeDevSummit 2013'te şu verilerin olduğunu söyledi: CSS'deki uris, konuşması sırasında kritik / minimum CSS sağlamak için oluşturmayı engelleyen bir desen olarak kabul edildi
#perfmatters: Instant mobile web apps
. Http://developer.chrome.com/devsummit/sessions adresine bakın ve bunu aklınızda bulundurun - gerçek slayt
PRO:
Hücresel cihazlara daha fazla önbellek sınırı ekleniyor ... CON:
bazı görüntüler basit sunum yerine içerik olarak ele alınmalı ve bu nedenle HTML IMG etiketleri için CSS arka plan görüntülerinden daha uygun olmalıdır.