2010-04-19 13 views
5

Douglas Crockford, bir düğümün stilini sorgulayan JavaScript'in sonucunu açıklar. Bir divın kenar boşluğunu sormak, tarayıcının tarayıcı oluşturma işlemcisindeki divı dört kez "yeniden akıtmasına" neden olur.Margin-left yapar: 2px; marjdan daha hızlı render: 0 0 0 2px ;?

Bu, bir sayfanın ilk oluşturulmasında (ya da Crockford'un jargonunda bir "web kaydırması"), sadece sıfır olmayan/varsayılan olmayan değerleri tanımlayan CSS yazmak için daha hızlı mıdır? Bir örnek vermek:

div{ 
    margin-left:2px; 
} 

div{ 
    margin:0 0 0 2px; 
} 

daha bu 'tasarruf' sonucunu biliyoruz önemsiz olduğunu, ancak bunun teknolojilerin nasıl uygulandığını anlamak için hala önemli olduğunu düşünüyorum. Ayrıca, bu, CSS'yi biçimlendirme hakkında bir soru değildir - bu, CSS oluşturan tarayıcıların uygulamaları ile ilgili bir sorudur.

Referans: http://developer.yahoo.com/yui/theater/video.php?v=crockonjs-4

cevap

1

Hayır, tarayıcınıza bağlı olarak, stilleri uygulamadan önce değerleri farklı şekillerde açacaktır. ve Firefox'ta, yürütme hızı üzerinde biraz etkisi olacaktır. Kestirme CSS'yi her iki şekilde de kullanmak iyi bir fikir.

{margin: 0 0 0 2px;} 

sayfaya stiller uygulamadan önce

{margin-top: 0pt;margin-right: 0pt;margin-bottom: 0pt;margin-left: .04pt;} 

olarak: Eğer nasıl çalıştığını Firefox anlamak istiyorsanız

, değerini açar. Bu normalleşme içindir.

* (. 04pt bir tahmindir)

2

Ben daha hızlı "hale" emin değilim. AMAÇ: İkinci sürüm, ilk sürümden daha büyük bir kaç bayttır. (Ağın sayfa oluşturma süresinden daha yavaş olduğunu ve ilk versiyonun aslında "daha hızlı oluşturulmasını" sağladığını varsayalım)