2011-03-21 10 views
27

मैं एक जेएस प्रोग्रामर हूं और मैं jQuery के साथ बहुत प्रयोग कर रहा हूं लेकिन कुछ परेशान पहलुओं में भाग गया हूं।लोग बुनियादी परिचालनों के लिए jQuery का उपयोग क्यों करते हैं?

मुझे लगता है कि लोग जरूरी से ज़्यादा ज़्यादा ज़रूरी इस्तेमाल करते हैं। मैं वास्तव में जानना चाहता हूं कि jQuery को क्यों चुनना सिर्फ शुद्ध जेएस का उपयोग करने से बेहतर हो सकता है।

मैं यह पता चेतन और fades तरह webfx के लिए समझ में आता है लेकिन घटना श्रोताओं को जोड़ने जैसी चीजों के लिए यह बस के रूप में

obj = document.getElementByID(_ID_); 
obj.addEventListener("mousedown"...); 

इस का एक उदाहरण का उपयोग करने के लिए आसान लगता है इस सवाल का जवाब मैं StackOverflow पर पाया आज पहले है हाइलाइट किए गए टेक्स्ट के लिए एक क्रिया करने के बारे में। Get the Highlighted/Selected text

उदाहरण जवाब में जुड़े हुए में http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

आदमी को दस्तावेज़ में बाँध समारोह का उपयोग करता है। AddEventListener के बजाय बाध्य का उपयोग क्यों करें। (या क्यों इस पर चयन)

document.addEventListener('load', function() { ... }, false); 

दूसरी बार मैंने देखा है jQuery का इस्तेमाल किया है कि मुझे हैरान कर रहे हैं, मुझे आशा है कि इसके अलावा jQuery के साथ सब कुछ विधि .ready() कैसे से बेहतर है में शामिल किया जाना चाहिए लोग मेरे लिए कुछ प्रकाश चमक सकते हैं।

+1

शुद्ध jquery अच्छा नहीं है। यह प्रदर्शन बनाम विकास के समय के बारे में है। केवल jquery का उपयोग करें यदि वास्तव में आवश्यक है और प्रदर्शन कोई फर्क नहीं पड़ता। मैंने देखा है कि लोगों ने इस के बजाय $ (this) .attr ('id') का उपयोग किया है। प्रदर्शन में शुद्ध जावास्क्रिप्ट लीड लेकिन ब्राउज़र अनुकूलता के लिए कम समर्थन। –

उत्तर

49

लोग jQuery का उपयोग करते हैं क्योंकि यह आसान, आसान और अधिक शक्तिशाली है, और क्योंकि इससे उन्हें IE के बारे में भूलने में मदद मिलती है।

अपने विशिष्ट सवालों के जवाब देने के लिए:

  1. अन्यथा, आप IE के लिए attachEvent कॉल करने के लिए की जरूरत है।
    इसके अलावा, jQuery ईवेंट हैंडलिंग में सरल वाक्यविन्यास है, और लाइव ईवेंट का समर्थन करता है।

  2. jQuery आपको ready हैंडलर में सबकुछ रखने की आवश्यकता नहीं है; वास्तव में पृष्ठ के निचले हिस्से में अपना कोड स्थानांतरित करना और इसे तुरंत निष्पादित करना बेहतर है।
    document.addEventListener('load', ...) के विपरीत, jQuery का ready ईवेंट छवियों को लोड करने की प्रतीक्षा नहीं करेगा।
    इसके अलावा, यह आईई में काम करता है, और यह दस्तावेज़ अभी भी लोड हो जाएगा, भले ही दस्तावेज़ पहले से लोड हो।

+0

$ ('विंडो')। तैयार() छवियों को लोड करने की अनुमति देता है ... मुझे लगता है कि – austinbv

+0

@zobgib: नहीं; वह '.load' है। http://api.jquery.com/load-event – SLaks

27

खैर, on() क्योंकि addEventListener() केवल इंटरनेट एक्सप्लोरर 9 के बाद से समर्थित है काफी उपयोगी है।

रिवर्स उदा। mouseenter और mouseleave घटनाएं: वे केवल आईई (अब तक) द्वारा समर्थित हैं, और jQuery उन्हें अन्य ब्राउज़रों में अनुकरण करता है।

+1

+1 उन माउस घटनाओं के लिए +1 – StuperUser

14

मेरे लिए सबसे बड़ा कारण क्रॉस ब्राउज़र संगतता है, खासकर ईवेंट हैंडलिंग के साथ।

6

jquery के पीछे विचार "कम लिखें, और करें"।

छोटे उदाहरणों के साथ लिखे गए कोड की मात्रा में अंतर छोटा है, लेकिन जब आप अधिक जटिल सामग्री लिखना शुरू करते हैं तो jquery की शक्ति स्पष्ट हो जाती है।

jQuery में बहुत सी क्रॉस-ब्राउज़र सामग्री भी बनाई गई है, जिसका अर्थ है कि आपको ब्राउज़र-विशिष्ट कोड के बारे में चिंता करने की ज़रूरत है।

2

मुझे जावास्क्रिप्ट में केवल अधिक जावास्क्रिप्ट के साथ प्लेटफ़ॉर्म-स्वतंत्र होने पर अधिक विश्वास है। इसी कारण से, मैं जितना संभव हो उतना jQuery का उपयोग करने का लुत्फ उठा रहा हूं। और मुझे लगता है कि jQuery कुछ तरह से ब्राउज़र-विशिष्ट जटिलताओं को दूर करने के लिए एक मंच के लिए पर्याप्त और स्थिर है।

1

क्योंकि यह क्रॉस-संगत और अच्छी तरह से समर्थित है (एक्सएचआर अनुरोधों के बारे में सोचें) ... लेकिन कुछ परियोजनाओं में मुझे "संपत्ति" विधि की कमी के कारण JQuery के बजाय MooTools का उपयोग करना बेहतर लगेगा।

3

क्योंकि jQuery डेवलपर मेरे जितने चालाक हैं, और मैं जो करने की कोशिश कर रहा हूं, उसे करने के लिए अक्सर एक अधिक कुशल एल्गोरिदम लागू करता हूं।

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