$("#vacations").find("li").last()
का उपयोग कर रहा है $("#vacations li:last")
से बेहतर अभ्यास है?क्या jQuery ट्रैवर्सल चयनकर्ताओं पर पसंदीदा है?
पृष्ठभूमि और मेरे विचार:
मैं के साथ खेल रहा था एक अच्छा इंटरैक्टिव try jQuery tutorial और कार्यों में से एक का कहना है:
आप अपने कोड के माध्यम से देख रहे हैं के रूप में, आपको लगता है कि किसी और को चुन रही है अंतिम छुट्टी के साथ: $ ("# छुट्टियां ली: आखिरी")। आप इसे देखते हैं और आप सोचते हैं, "ट्रैवर्सल इस तरह से तेज़ी से बना देगा!" आपको उन विचारों पर कार्य करना चाहिए, इसके बजाय ट्रैवर्सल का उपयोग करके # vacations के भीतर अंतिम ली खोजने के लिए इस कोड को दोबारा दोहराएं।
मुझे ऐसा क्यों लगता है? मेरे लिए चयनकर्ताओं का उपयोग ट्रैवर्सिंग की तुलना में थोड़ा अधिक स्तर दिखता है। मेरे दिमाग में जब मैं एक चयनकर्ता निर्दिष्ट कर रहा हूं तो यह jQuery पर निर्भर करता है कि मुझे एक भी परिणाम को बेहतर तरीके से प्राप्त करने के लिए (अंतरिम परिणामों को वापस करने की आवश्यकता के बिना)।
समग्र चयनकर्ताओं का उपयोग करने के अतिरिक्त ओवरहेड क्या है? क्या ऐसा इसलिए है क्योंकि चयनकर्ता तर्क का वर्तमान कार्यान्वयन सिर्फ स्ट्रिंग को पार करता है और ट्रैवर्सल एपीआई का उपयोग करता है? धीमी गति से एक स्ट्रिंग पार्स कर रहा है? क्या कोई मौका है कि भविष्य में कार्यान्वयन इस तथ्य का उपयोग करेगा कि इसे अंतरिम परिणामों को वापस करने की आवश्यकता नहीं है और यह ट्रैवर्सल से तेज होगा?
यहां आपके लिए एक jspref.com परीक्षण चलाया गया है http://jsperf.com/is-jquery-traversal-preferred-over- चयनकर्ता जिन्हें आप आसानी से परीक्षण कर सकते हैं अब विभिन्न ब्राउज़रों में है। – Peeyush
कोई नया उत्तर पोस्ट नहीं कर रहा है क्योंकि यह प्रासंगिक नहीं है, लेकिन डेवलपर के लिए, दोनों उपयोगी हैं: आप एक चयनकर्ता (प्रारंभिक हो सकते हैं) के साथ प्रारंभिक चयन कर सकते हैं परिणाम को jQuery ऑब्जेक्ट में सहेजते हैं, फिर सशर्त रूप से कोड ए चलाते हैं या बी, और फिर एक रन एक ट्रैवर्सिंग विधि पर और बी पर एक अलग चलाते हैं। सही तत्व का चयन करने के लिए सशर्त रूप से एक स्ट्रिंग का निर्माण करने से यह आसान (और कम त्रुटि प्रवण) है। –