2012-03-18 44 views
18

Canlı bir üretim ortamında istemci tarafına kıyasla daha az sunucu tarafı kullanmanın artıları/eksileri nelerdir? Neden daha azını statik css'ye dönüştürmek ve bunun yerine canlı yayına geçmek istiyorum? Anladığım kadarıyla css hem sunucu hem de istemci tarafında önbelleğe alınmış, bu yüzden bir sorun olmamalı ve js mevcut bir uygulama değil çünkü benim javascript üzerinde çok bağımlıyım. Sunucu tarafı derlemesinin nasıl çalıştığını tam olarak anlamadım .... teşekkürlerDaha az (css önişlemcisi) sunucu tarafı veya istemci tarafı kullan

cevap

25

LESS kullanan büyük bir projede çalıştım. İstemci tarafı (geliştirme ortamlarında) derlediğimiz ana sorun, istemci tarafı derlemenin JavaScript gerektirmesi ve yazdırmanın JavaScript'i etkinleştirilmeden sayfayı kağıda dökmesidir, bu yüzden bir kullanıcı bir sayfa yazdırdığında tamamen eğilmemiş olur. Uygulamanız bizimki gibi çok miktarda JavaScript kullanıyor olsa bile, yazdırmayı desteklemek istiyorsanız sunucu tarafını derlemek veya statik CSS sağlamanız gerekir.

Bizim için en iyi çözüm, geliştirme ortamlarında LESS sunucu tarafını anında yayınlamak için node.js'yi çalıştırmaktı, ardından siteyi üretime dağıtırken tek bir gzipli css dosyasına önceden derlemekti.

Ayrıca, önceden derleme, istemci tarafından yapılan bireysel dosya isteklerinin sayısını, bizim durumumuzda (her bir LESS dosyası için birer tane) tek bir CSS dosyasına indirir ve derleme adımından kaçınarak daha hızlı yükleme yapar (Istemci tarafı less.js, sayfa oluşturulmaya başlamadan önce yeni bir sayfanın yönlendirildiği her seferinde çalışmalıdır.)

Canlı bir ortamda, sunucu tarafında anında derlemeyi önermem, Çünkü bu gereksiz bir çok işlemci yükü ekleyecektir. Bunu önceden derlerseniz, tek bir sıradan CSS dosyasından daha fazla sunucu kaynağı tüketmez.

+0

Teşekkürler, sadece anladığımı onaylamak için ... bu, istemci tarafında her zaman bir sayfa yüklendiğinde daha az işleniyor demektir. Sunucu tarafında, daha az sadece yüklenen ve sonra önbelleğe alınan ve tekrar işlenmeyen ilk sayfa için işlenir? –

+0

Evet, istemci tarafında, sayfa her görüntülendiğinde derlenmesi gerekir. İyi bir sunucu tarafı uygulamanız varsa derlenmiş CSS'yi önbelleğe alır ve LESS kaynak dosyalarınız değişene kadar hizmet verir. Ancak, stil sayfalarını düzlemde değiştirmeyi planlamıyorsanız, bunu doğrudan üretime yerleştirdiğinizde LESS'inizi kolayca derleyip, doğrudan HTML'nizden başvurulan düz bir CSS dosyası olarak kaydedebilirsiniz. Bu, node.js'nin çalışmasına bile izin vermeyecek ve LESS'e hizmet etmenin en verimli yoludur. –

+1

Ayrıca: CSS'yi bir dağıtım komut dosyasının parçası olarak derlemenin, sunucu tarafından otomatik olarak çalışan derlemeye güvenmekten daha iyidir. – mlissner

3

Tarayıcı, yalnızca sunucudan aldığı verileri önbelleğe alabilir. Bu, numaralı tarayıcısında derlenmiş CSS'yi daha az (HTML5 yerel depolama mekanizmaları bir kenara kadar) içerir. Bu, daha az dosya sunucu yerine tarayıcı önbelleğinden yüklense bile, tarayıcının her yüklendiğinde daha az dosyayı CSS'ye derlemesi gerektiği anlamına gelir.

İlgili konular