2010-08-06 10 views
7

स्लाइड 30 Paul Irish's blog में उल्लेख किया है:क्या मूलभूत वंशज चुनने की विधि से तेज है।

$('#container').find('div.robotarm') से $('#container div.robotarm')

तेजी से यह सच है है?

+3

मैं कहूंगा कि राय कुछ भी नहीं है। कुछ मानक बनाएं और उन्हें कई बार चलाएं (अधिमानतः विभिन्न ब्राउज़रों पर) और परिणामों की जांच करें। एक निश्चित उत्तर पाने के लिए यही एकमात्र तरीका है, आईएमओ। –

+0

https://forrst.com/posts/I_ran_a_little_speed_test_on_jQuery_selectors_Y-3mQ इससे मदद मिल सकती है। – Kriem

उत्तर

5

शायद jQuery के पहले संस्करण में जो मामला था। हालांकि, अभिव्यक्ति

$('#container div.robotarm') 

$('#container').find('div.robotarm') 

में jQuery के माध्यम से सामान्यीकृत हैं, इसलिए केवल कारण है कि $('#container div.robotarm') धीमी होना चाहिए समारोह कॉल उपरि के कारण है। लेकिन, यह वास्तव में एक मामूली अंतर होगा।

यदि कॉल सामान्य नहीं किया गया था, तो sizzle (Resigs css चयनकर्ता इंजन) का उपयोग उस तत्व को देखने के लिए किया जाएगा (दाएं से बाएं)। निश्चित रूप से बहुत धीमा होगा।

+1

क्या कोई इसे वापस करने के लिए कुछ दस्तावेज उद्धृत कर सकता है? त्वरित Google खोज पर कुछ भी नहीं मिला। –

2

चूंकि आपने राय मांगी है, इससे कोई फर्क नहीं पड़ता।

आप हमेशा ऐसे मामले के साथ आ सकते हैं जहां कोई ब्राउज़र के किसी निश्चित कॉन्फ़िगरेशन के तहत किसी ब्राउज़र में दूसरे से तेज़ी से चलता है। बाल विभाजित करने की कोई ज़रूरत नहीं है।

1

आईडी द्वारा खोज करते समय यह केवल सही है।

लेकिन जब हम टैग नाम से खोज यह आधुनिक ब्राउज़रों जहां $('div').find('p')$('div p') धीमी गति से है क्योंकि बाद querySelector() का उपयोग करता है में अलग परिणाम देता है।

संबंधित मुद्दे