CSS चयनकर्ता ब्राउज़र इंजन से दाएं से बाएं से मेल खाते हैं। इसलिए वे पहले बच्चों को ढूंढते हैं और फिर उनके माता-पिता को देखते हैं कि वे नियम के बाकी हिस्सों से मेल खाते हैं या नहीं।
- ऐसा क्यों है?
- क्या यह सिर्फ इसलिए है क्योंकि युक्ति कहती है?
- यदि यह बाएं से दाएं का मूल्यांकन किया गया तो क्या यह अंतिम लेआउट को प्रभावित करता है?
मेरे लिए ऐसा करने का सबसे सरल तरीका यह होगा कि चयनकर्ता कम से कम तत्वों का उपयोग करें। तो पहले आईडी (क्योंकि उन्हें केवल 1 तत्व वापस करना चाहिए)। तब शायद कक्षाएं या एक तत्व जिसमें सबसे कम संख्या में नोड्स होते हैं - जैसे कि पृष्ठ पर केवल एक ही अवधि हो सकती है इसलिए किसी भी नियम के साथ सीधे उस नोड पर जाएं जो एक अवधि का संदर्भ देता है।
यहाँ कुछ लिंक मेरे दावों का समर्थन कर रहे हैं
- http://code.google.com/speed/page-speed/docs/rendering.html
- https://developer.mozilla.org/en/Writing_Efficient_CSS
ऐसा लगता है कि माता-पिता के सभी बच्चों (जो कई हो सकते हैं) के बजाय एक बच्चे के सभी माता-पिता जो एक होना चाहिए, को देखने से बचने के लिए इस तरह से किया जाता है। यहां तक कि अगर डोम गहरा है तो यह आरटीएल मिलान में कई के बजाय केवल एक नोड प्रति स्तर पर दिखेगा। क्या CSS चयनकर्ताओं LTR या RTL का मूल्यांकन करना आसान / तेज है?
#foo
चयनकर्ता को उन सभी नोड्स का मिलान करना होगा। jQuery के पास यह कहने का विकल्प है कि $ ("# foo") हमेशा केवल एक तत्व वापस करेगा, क्योंकि वे अपने स्वयं के एपीआई को अपने नियमों से परिभाषित कर रहे हैं। लेकिन ब्राउज़र को सीएसएस को लागू करने की आवश्यकता है, और सीएसएस दी गई आईडी के साथ दस्तावेज़ में सब कुछ मेल करने के लिए कहता है।
querySelectorAll
) का उपयोग करता है । अन्य मामलों में, Sizzle का उपयोग किया जाता है। Sizzle कई ID से मेल नहीं खाता, लेकिन QSA करता है (AYK)। लिया गया पथ चयनकर्ता, संदर्भ और ब्राउज़र और उसके संस्करण पर निर्भर करता है। jQuery के क्वेरी एपीआई का उपयोग करता है जिसे मैंने "मूल निवासी, दोहरी दृष्टिकोण" कहा है। मैंने उस पर एक लेख लिखा था, लेकिन यह नीचे है। हालांकि आप यहाँ पा सकते हैं: fortybelow.ca/hosted/dhtmlkitchen/JavaScript-Query-Engines.html