!performansı için kötü önemli?
Onlardan nefret ediyorum, CSS basamaklı doğaya meydan okuyor, ve eğer onları özenle kullanmasanız bile 2 ** daha ekleyerek bir döngü içinde bitirmek.
Ama performansı için kötü olduğunu bilmek istiyorum?
EDİT
(Hızlı) yanıt performansı üzerinde (anlamlı) bir etkiye sahip olmayacak söyleyebiliriz.
Ama eğer sadece cesaret kırıcı diğerleri;) için ekstra bir argüman olarak kullanıyorsa bile bilmek güzel.
2 DÜZENLEYİN
BoltClock Eğer 2 !important
bildirimleri "olmazsa olmaz" özellikleri en belirgin çeker diyor dikkat çekti.
CEVAP
Performans gerçekten üzerine herhangi bir yan etkisi olmamalı. Görmekfirefox /source/layout/style/nsCSSDataBlock.cpp#572
CSS ayrıştırıcıve bu konuyla ilgili rutin kullanımı olduğunu düşünüyorumüzerineCSS kuralları.
sadece basit bir kontrol gibi görünüyor"". önemli
if (aIsImportant) {
if (!HasImportantBit(aPropID))
changed = PR_TRUE;
SetImportantBit(aPropID);
} else {
// ...
Ayrıca, bir yorumsource/layout/style/nsCSSDataBlock.h#219
/**
* Transfer the state for |aPropID| (which may be a shorthand)
* from |aFromBlock| to this block. The property being transferred
* is !important if |aIsImportant| is true, and should replace an
* existing !important property regardless of its own importance
* if |aOverrideImportant| is true.
*
* ...
*/
Firefox yukarıdan aşağıya ayrıştırıcı elle yazılmış kullanır. Her iki durumda da, her Stil dosyası bir nesne ayrıştırılır CSS, her nesnenin CSS içerir kuralları.
Firefox stil bağlam oluşturur sonuna ihtiva eden ağaçlar değerleri (doğru sırayla tüm kuralları uygulandıktan sonra)
From: http://taligarsiel.com/Projects/howbrowserswork1.htm#CSS_parsing
Şimdi, kolayca görebilirsiniz, Nesne Modeli, yukarıda anlatılan durumda olduğu gibi, çözümleyici kuralları !important
kolayca etkilenen, sonraki bir maliyet olmadan fazla işareti olabilir. Performans düşüşüdeğil!important
karşı iyi bir argüman.
Ancak, sürdürülebilirliği onlara karşı tek argüman olabilecek bir hit diğer yanıtlar belirtildiği gibi), sürer.
Neden&; dizi yineleme için... "* o kad...
Nasıl düzeltmek için: Desteklenmeyen ö...
Neden önemli GetHashCode yöntem geçers...
Neden Ruby Hariç => e `kurtarmak iç...
Nasıl uygulamak için !önemli kullanıyo...