CSS, tıpkı HTML ve JavaScript gibi nispeten karmaşık bir boru hattından geçmelidir. Tarayıcı, dosyaları sunucudan indirmeli ve ardından ayrıştırmaya ve bunları DOM'ye uygulamak için devam etmelidir. Aşırı optimizasyon seviyeleri nedeniyle, bu işlem genellikle oldukça hızlıdır - daha küçük web projeleri için çerçevelere dayanmayan, CSS genellikle toplam kaynak tüketiminin sadece küçük bir parçasını oluşturur.
Çerçeveler bu dengeyi üzdü. JQuery UI gibi bir Javascript GUI yığını ve CSS, JS ve HTML boyutlarını izleyin. Genellikle, geliştiriciler genellikle tutamları en son hissederler - T3 internet ile güçlü bir sekiz çekirdekli iş istasyonunun arkasına otururken, kimse hızla ilgilenmez. Bu, gecikmeler veya CPU kısıtlı cihazlar olarak değişir.
CSS optimizasyonu çok boyutlu bir yaklaşım gerektirir. Elle yazılmış kod çeşitli teknikler kullanılarak yıkılırken, elle çerçeve kodunun üstesinden gelince verimsizdir. Bu durumlarda, otomatik bir minimum cihazı kullanarak daha iyi sonuç verir.
Aşağıdaki adımlar bizi CSS optimizasyonu dünyasında bir yolculuğa çıkaracak. Her bir tek kişi doğrudan projeniz için geçerli olmayabilir, ancak onları aklınızda bulundurun. Daha basit bir şey ister misin? Deneyin Web Sitesi Oluşturucu .
En hızlı CSS maddesi asla ayrıştırılamayan biridir. Aşağıda gösterilen marj bildirimi gibi Shorthand Clauses'u kullanarak, CSS dosyalarınızın boyutunu radikal olarak azaltır. Googling 'CSS Shorthand' tarafından çok fazla ek stenograf formu bulunabilir.
P {marj-top: 1px;
Marj-sağ: 2px;
Marj-alt: 3px;
Marj-sol: 4px; }
p {marj: 1px 2px 3px 4px; }
İşaretinizin gereksiz parçalarını ortadan kaldırmak, açıkça büyük hız kazanımlarına neden olur. Google'ın Chrome tarayıcısı bu işlevselliğe kutudan çıkar. Sadece View & Gt; Geliştirici ve GT; Geliştirici araçları ve kaynaklar sekmesini son sürümde açın ve komut menüsünü açın. Bundan sonra, mevcut web sayfasında kullanılmayan kodu vurgulayan kapsama analizi penceresinde kapsama alanı göster ve gözlerinizi şölen seçin.
Line-line analiz yoluyla gezinmek mutlaka rahat değildir. Chrome'un Web Performans Denetimi benzer bilgileri döndürür - sadece araç çubuğundan açın, görünüm ve GT; Geliştirici ve GT; Geliştirici Araçları & GT; Denetimler ve koşmasına izin verin. Yapıldığında, sorunlu elemanların bir listesi açılacaktır.
Bir CSS'nin otomatize bir analizinin her zaman hatalara yol açabileceğini unutmayın. CSS dosyalarınızı haritalandırılmış olanlarla değiştirdikten sonra tüm web sitesinin tam bir testini yapın - Optimize Eden Optimize Edici'nin neler yapıldığını asla bilemez. Ve ileriye doğru ilerlemek, iyi ağ sağlayıcısı Sitenizdeki kırışıklıkları çıkarmanıza yardımcı olabilir.
Harici stil sayfalarının yüklenmesi Gecikme nedeniyle zamana mal oluyor - Herkes 'ninsiz içeriğin flaşını' hatırlıyor mu? Bu nedenle en kritik kod bitleri başlık etiketine girebilir. Bununla birlikte, abartmadığınızdan emin olun. Kodun bakım görevlerini gerçekleştiren insanlar tarafından da okunması gerektiğini unutmayın.
& lt; html & gt;
& lt; head & gt;
& lt; stil & gt;
.blue {renk: mavi;}
& lt; / stil & gt;
/ head & gt;
& lt; vücut ve gt;
& lt; div sınıf = "mavi" & gt;
Selam Dünya!
& lt; / div & gt;
@import, CSS kodunuza yapı ekler. Ne yazık ki, faydalar ücretsiz değildir: ithalat yuva yapabileceği gibi, paralel olarak ayrıştırılması mümkün değildir. Daha paralelleştirilebilir bir yol bir dizi kullanır LINK & GT; Tarayıcının bir kerede getirebileceği etiketler.
@Import URL ("A.CSS");
@IMPort URL ("B.CSS");
@IMPort URL ("C.CSS");
v. LINK REL = "Stylesheet" href = "A.CSS" & GT;
& link rel = "stylesheet" href = "b.csss" & gt;
& link rel = "stylesheet" href = "c.csss" & gt;
Yıllar önce, web siteleri üzerinde yarı saydam etki yaratan bir dizi yarı saydam PNGS yaygındı. Günümüzde, CSS filtreleri bir kaynak tasarrufu sağlayan bir alternatif sunar. Örnek olarak, bu adıma eşlik eden snippet, söz konusu resmin kendisinin gri tonlamalı bir versiyonu olarak görünmesini sağlar.
img {
-WebKit-Filter: Gri tonlamalı (% 100); / * eski
Safari * /
Filtre: gri tonlamalı (% 100);
}
Ortak bilgelik, altı basamaklı renk tanımlayıcıların renkleri ifade etmenin en etkili yolu olduğunu öğretir. Bu durum değil - bazı durumlarda, steno açıklamaları veya renk adları daha kısa olabilir.
Hedef {arka plan rengi: #ffffff; }
Hedef {arka plan: #fff; }
CSS, çok çeşitli birimleri ve sayı formatlarını destekler. Optimizasyon için müteşekkir bir hedeftir - hem izleyen hem de aşağıdaki sıfırdan sonra sıfırdan çıkan sıfırlar çıkarılabilir. Ayrıca, bir sıfırın her zaman sıfır olduğunu unutmayın ve bir boyut eklenmesi, içerdiği bilgilere değer katmaz.
Dolgu: 0.2EM;
Marj: 20.0EM;
Avalue: 0px;
Dolgu: .2EM;
Marj: 20EM;
Avalue: 0;
Bu optimizasyon, kod değişikliklerini etkilediği için biraz kritiktir. CSS'nin özellikleri, bir mülk grubundaki son noktalı virgülleri atlamanızı sağlar. Bu optimizasyon yöntemi tarafından elde edilen tasarruflar asgari olduğundan, bunun çoğunlukla otomatik bir optimizatör üzerinde çalışanlar için bahsediyoruz.
P {
. . .
Yazı tipi boyutu: 1.33EM
}
Birden fazla küçük sprite yüklenmesi, protokol genel giderleri nedeniyle verimsizdir. CSS Sprite, bir dizi küçük resimlerin bir dizi büyük png dosyasına birleştirir; bu daha sonra CSS kuralları aracılığıyla parçalanır. Gibi programlar TexturePacker Yaratılış işlemini büyük ölçüde basitleştirin.
.Download {
Genişlik: 80px;
Yükseklik: 31px;
Arka plan-pozisyon: -160PX -160PX
}
.DOWNLOAD: Hover {
Genişlik: 80px;
Yükseklik: 32px;
Arka Plan-Pozisyon: -80PX -160PX
}
Performansı artırmanın temiz bir yolu, CSS standardının bir uzmanlığını kullanır. Ünitesiz sayısal değerler, piksel olduğu varsayılmaktadır - PX'i sökmek, her numara için iki bayt tasarruf sağlar.
H2 {dolgu: 0px; Marj: 0px;}
H2 {dolgu: 0; Marj: 0}
Analiz bazı etiketlerin diğerlerinden daha pahalı olduğunu göstermiştir. Bu adıma eşlik eden listenin özellikle performans aç olduğu kabul edilir - bunu yapma fırsatı verildiğinde onları önleyin.
Sınır Yarıçapı
kutu gölge
dönüştürmek
filtrelemek
: NTH-ÇOCUK
Konum: Sabit;
vs.
Boşluk - Düşünceler, satır başı ve boşluklar - Kodun okunmasını kolaylaştırır, ancak bir ayrıştırıcının bakış açısından az bir amaç sunar. Göndermeden önce onları ortadan kaldırın. Daha iyi bir yol, bu işi bir kabuk komut dosyasına veya benzeri bir cihaza devredilmeyi içerir.
Yorumlar ayrıca derleyiciye hiçbir amaçlı değildir. Teslimattan önce onları kaldırmak için özel bir ayrıştırıcı oluşturun. Bu sadece bant genişliğini koru bile değil, aynı zamanda saldırganların ve klonların, eldeki kodun arkasındaki düşünceyi anlamalarını daha zor bir zaman geçirmelerini sağlar.
Yahoo'nun kullanıcı deneyimi ekibi, birçok sıkıştırma görevini işleyen bir uygulamayı yarattı. Bir kavanoz dosyası olarak gönderilir, burada mevcut ve bir seçim olan bir JVM ile çalıştırılabilir.
java -jar yuicompressor-x.y.z.jar
Kullanım: java -jar yuicompressor-x.y.z.jar
[Seçenekler] [Giriş Dosyası]
Küresel seçenekler
-H, - help bunu görüntüler
bilgi
- Tipi ve JS | CSS & GT; Belirtir
Giriş dosyasının türü
Ürünü node.js içine entegre etmeyi tercih ederseniz, ziyaret edin npmjs.com/package/Yuicompressor . Kötü bakımlı depo, bir Sarıcı Dosyası ve JavaScript API'sini içerir.
Var kompresörü = gerektirir ('YUICOMPRESSOR');
kompresör.compress ('/ Yolu / /
js ', {dosya veya dize.
// Kompresör seçenekleri:
Charset: 'utf8',
Tip: 'JS',
CSS seçme performansı, bir yıllar önce olduğu gibi neredeyse hiç kritik değilken (kaynağa bakın), Sass gibi çerçeveler bazen aşırı karmaşık kod yayar. Çıktı dosyalarına zaman zaman bir göz atın ve sonuçları optimize etmenin yollarını düşünün. Bir takımla paylaşmak için sonuçlar var mı? Dosyaları paylaşılabilir olarak tutun Bulut depolama .
Eski bir atasözü, en hızlı dosyanın, kabloların üzerinden asla gönderilmeyen birinin olduğunu iddia ediyor. Tarayıcı önbellek isteklerini yapmak bunu verimli bir şekilde başarır. Ne yazık ki, önbellekleme başlıklarının kurulumu sunucuda gerçekleşmelidir. Ekran görüntülerinde gösterilen iki aletin iyi kullanımı yapın - değişikliklerinizin sonuçlarını analiz etmek için hızlı bir yol sağlar.
Tasarımcılar, yaklaşmakta olan değişikliklerle ilgili sorunlardan dolayı önbelleğe almayı çok sevmiyorlar. Sorunun etrafında düzgün bir şekilde, dosya adıyla etiketleri dahil etmeyi içerir. Ne yazık ki, bu adıma eşlik eden kodda belirtilen şema, bazı proxy'lerin 'dinamik' yollarıyla dosyaları önbelleğe almayı reddettiği için her yerde çalışmıyor.
& LINK REL = "stylesheet" href = "style.csss? V = 1.2.3" & gt;
CSS'yi optimize etmek, oyunun sadece bir parçasıdır. Sunucunuz HTTP / 2 ve GZIP sıkıştırma kullanmazsa, veri iletimi sırasında çok fazla zaman kaybolur. Neyse ki, bu iki problemi düzeltmek genellikle basittir. Örneğimiz, yaygın olarak kullanılan Apache sunucusuna birkaç tweaks gösterir. Kendinizi farklı bir sistemde bulursanız, sadece sunucu belgelerine danışın.
pico /etc/httpd/conf/httpd.conf
AddoutPutFilterbyType Metin / HTML'yi Deflat
AddoutPutFilterbyType Metin / CSS'yi Deflate
Bu makale başlangıçta yaratıcı web tasarım dergisinin 282 sayısında yayınlandı. Web tasarımcısı . Sayı 282 burada satın al veya Burada web tasarımcısına abone olun .
İlgili Makaleler:
Sanatta kontrast kullanmayı öğrenmek, projelerinizi ve çalışma şeklinizi değiştirecektir. Sanatta çalışmak için en sevdiğim yönüm kontrast. Bu genellikle renkle renk, doygunlu..
(Görüntü Kredi: Gelecek, Matt Smith) Photoshop'un fotoğrafa sokulacağını öğrenmek, edinmek için süper yara..
(Resim Kredisi: Rob Lunn) Sanatta nehirlleştiğini merak ediyorsanız, yalnız olmadığınızdan eminiz. Umarım, b..
(Resim Kredisi: Adobe) Adobe XD, tasarımcıların ve DEV ekiplerinin iş akışı bakımı ile geliştirilmesinde ge..
Son iki ila üç yıl Layout'un sıçramalarda ve sınırlarda ilerlemesini gördü. Artık bu modern tekniklerin modern tarayıc..
Birçok web tasarımcısı, sitelerinin tasarımlarına büyük bir etki katmanın yollarını arar, böylece kullanıcılarını..
Biliyorsundur İnsanları nasıl çizilir , ancak bir fotoğraftan ayırt edilemeyen bir dijital portre oluşturma..
En iyi şehir yoğun bir şehirdir, ancak bu yoğun bir atmosfer başarıyla yakalanması kolay bir şey değildir. Ancak bazı b..