मैं लंबे समय से jQuery का उपयोग कर रहा हूं और मैं अपने काम के लिए एक स्लाइड शो प्लगइन लिख रहा हूं और मैं (100% जानबूझकर नहीं) शायद एक ही श्रृंखला में 75% लिखा था। यह पूरी तरह से टिप्पणी की गई है और मैं प्रत्येक end()
निर्दिष्ट करता हूं और यह इसे रीसेट कर रहा है, आदि, लेकिन क्या यह धीमा jQuery या डोम लोडिंग धीमा करता है, या, क्या यह वास्तव में इसे गति देता है?लंबे jQuery चेन खराब हैं?
उत्तर
यह हमेशा के रूप में आपके विशिष्ट कोड पर निर्भर करता है। एक संदर्भ बनाम .end()
, अच्छी तरह से ... वास्तव में लंबी श्रृंखला के साथ, यह तेजी से चेन बनाम .end()
कॉल करने के लिए नहीं है, क्योंकि केवल .prevObject
संदर्भ जैसे अतिरिक्त सामान (भंडारण/बहाल करना) को संभालना है, .selector
, .context
, आदि कि आप शायद कई मामलों में परवाह नहीं करते .... और पिछले वस्तुओं के लिए और अधिक अंतर्निहित संदर्भ।
जहां यह अधिक महंगा है मापने के लिए कठिन है ... यह निष्पादन नहीं है (हालांकि यह धीमा है, भले ही infinitesimally) ... यह उन सभी वस्तुओं को बाद में साफ करने के लिए अधिक जटिल कचरा संग्रह है, निर्भरता ग्राफ के बाद से अब बहुत बड़ा है।
अब ... क्या यह मापने योग्य अंतर करेगा? जब तक कि आपकी श्रृंखला वास्तव में लंबी न हो, तब तक शायद माइक्रो-ऑप्टिमाइज़ेशन आपको अधिकांश मामलों में चिंता करने की आवश्यकता नहीं है।
उस समय का 99%, जब तक कि आप कुछ आक्रामक प्रदर्शन दंडित कॉल नहीं कर रहे हैं, इसके बारे में चिंता न करें, जैसा कि अधिकांश माइक्रो-ऑप्टिमाइज़ेशन के साथ है। यदि आपको प्रदर्शन के साथ कोई समस्या हो रही है, तो इसमें शामिल हों।
+1, '.end() ' –
+1 के उपयोग पर अच्छे संकेतों के लिए निर्भरता ग्राफ आकार के संबंध में बिंदु के लिए। – Orbling
धन्यवाद! जानकार अच्छा लगा। मैं कैशिंग, इत्यादि करता हूं, लेकिन इसके लिए कई चयनकर्ता नहीं हैं और कोड सिर्फ थोड़े से बहने वाले होते हैं, इसलिए मैं इसके साथ गया तो मैंने सोचा ... ओह ओह ... यह चीजों को धीमा कर सकता है। –
मेरा अनुमान मध्यस्थों की कमी के कारण कोई अंतर या तेज नहीं होगा।
एकमात्र बड़ी कमी स्पष्टता के लिए है, यदि आप टिप्पणियों के माध्यम से सोचते हैं कि यह टिप्पणियों के आधार पर या केवल एक अच्छी तरह से साफ कॉल श्रृंखला के माध्यम से इसे मध्यवर्ती चर के साथ बहु-लाइन बनाये बिना स्पष्ट है।
आधुनिक ब्राउज़र में आप जो सबसे महंगी चीजें कर सकते हैं उनमें से एक है डोम तक पहुंच और कुशलतापूर्वक उपयोग करना। चेनिंग आपको वास्तविक लुकअप को कम करने देता है जो आपको करना है, जिसका अर्थ काफी तेज़ कोड हो सकता है। दूसरा विकल्प प्रारंभिक लुकअप करना है, एक चर में स्टोर करें, और उस चर के सब कुछ बंद करें। ऐसा कहा जा रहा है कि, jquery विशेष रूप से उस चेनिंग एपीआई के साथ दिमाग में डिजाइन किया गया था, इसलिए यह श्रृंखला के लिए अधिक मूर्खतापूर्ण है।
मुझे लगता है कि jQuery की चेनबिलिटी एक महान विशेषता है ... किसी को वास्तव में इसे अधिक बार उपयोग करना चाहिए। उदाहरण के लिए : -:
$(this).find('.funky').css('width', 30).attr('title', 'Funky Title');
$(this).fadeIn();
आपको दो jQuery '$ (यह) '...' var obj = $ (this) .find ('funky') बनाने की आवश्यकता नहीं है। Css ('width', 30) .attr ('title' , 'फंकी शीर्षक'); obj।fadeIn(); ' – Matt
बेशक यदि आप इसे एक चर में संग्रहीत करते हैं - लेकिन ऐसा नहीं है कि अधिकांश jQuery उपयोगकर्ता मेरे अनुभव में लिखते हैं, तो वे केवल" दुरुपयोग "$() करते हैं। यही कारण है कि मुझे चेनबिलिटी सुरुचिपूर्ण लगता है - कोई चर पर सस्ता रह सकता है :)। इसके अलावा आप कोड मेरे से अलग हैं ... ('$ (यह) fid ('फंकी') '$ (इस)' – kares
@ मैट के बजाय' ('फंकी') '- यह वही प्रभाव नहीं होगा , आपका 'obj' वैरिएबल कुछ' .ind' तत्वों को संदर्भित करता है, न कि 'यह' :) –
- 1. संयोजन/चेन एकाधिक jQuery ऑब्जेक्ट
- 2. ग्लोबल्स क्यों खराब हैं?
- 3. Jquery खराब प्रथाओं
- 4. क्यों फ्रेम खराब हैं
- 5. कोड जेनरेटर खराब हैं?
- 6. चेन आदेशों
- 7. चेन वादे
- 8. आईडीस्पोजेबल चेन
- 9. स्थितिगत प्रश्न क्यों खराब हैं?
- 10. अप्रयुक्त चर क्यों खराब हैं?
- 11. जावास्क्रिप्ट में प्रोटोटाइप खराब हैं?
- 12. मार्कोव चेन टेक्स्ट जनरेशन
- 13. क्या सी ++ में लंबे लंबे int से अधिक प्रकार हैं?
- 14. , विधि चेन setters
- 15. मॉडल सेग्यू चेन
- 16. जेस्चर और रिस्पॉन्डर चेन
- 17. पासिंग IDisposable निर्माता चेन
- 18. CSS3 चेन एनिमेशन
- 19. चेन Backbone.js संग्रह विधि
- 20. jQuery आईई इतनी खराब हो गई है
- 21. jQuery और लंबे समय तक पूर्णांक आईडी
- 22. धूमकेतु, jquery ट्यूटोरियल के साथ लंबे मतदान
- 23. हस्ताक्षरित लंबे लंबे
- 24. इंद्रधनुष तालिकाओं में चेन कैसे काम करते हैं?
- 25. प्रोटोटाइप विरासत: क्या आप ऑब्जेक्ट.क्रेट को चेन कर सकते हैं?
- 26. (हाडोप) मैपरेडस - चेन जॉब्स - जॉबकंट्रोल
- 27. `e.what()` प्रिंट "खराब आवंटन" कैसे आते हैं?
- 28. खराब रूप में अंतहीन लूप हैं?
- 29. शर्तों में असाइनमेंट क्यों खराब हैं?
- 30. पाइथन खराब में verbose __init__ विधियां हैं?
टैग किए गए इस '[प्रदर्शन]' रूप में अच्छी तरह, के बाद से है कि
ज्यादा बेहतर (और सुरुचिपूर्ण) है से अधिक 2 jQuery
$(this)
वस्तुओं को बनाने की जरूरत नहीं है मुख्य चिंता यह लगता है :) –