2010-08-28 12 views
5

इससे एक साइड-बाई-साइड तकनीकी तुलना के बारे में नहीं है, बल्कि के बारे में कैसे "jQuery में लगता है कि" करने के लिए बनाम "प्रोटोटाइप में सोच"।jQuery के लिए प्रोटोटाइप: मानसिकता माइग्रेशन?

मैं कई वर्षों के लिए भारी प्रोटोटाइप का उपयोग किया है, और jQuery कुछ हद तक कम भारी लगभग एक साल पहले तक जब मैं इसके साथ एक बहुत कुछ कर शुरू कर दिया।

प्रोटोटाइप के साथ, मैं काफी कुछ सुरुचिपूर्ण कोड लिख सकते हैं; मेरे मालिक ने एक बार मेरे कोड की बड़ी मात्रा की समीक्षा की और टिप्पणी की कि यह पहली जावास्क्रिप्ट थी जिसे उसे कभी पढ़ने में खुशी होगी। मैं समझता हूं - और शुरुआत से काफी कुछ समझ गया - लगभग सहजता से प्रोटोटाइप क्या करने की कोशिश कर रहा है, और जानता है कि इसके साथ कैसे काम करना है।

मेरे jQuery कोड एक बहुत अधिक है, मैं कैसे इस डाल सकते हैं, "कारीगर जैसे"। मुझे लगता है जैसे मैं रास्ते के हर कदम jQuery से लड़ रहा हूँ। मुझे अपने आप को इसके साथ चिपकने के लिए मजबूर करना है ("मूल" जेएस में नहीं जाना है, जहां मुझे पता है कि मैं साफ़ क्रॉस-ब्राउज़र कोड को और अधिक तेज़ी से निकाल सकता हूं। इसके साथ काम करना और अधिक, कम नहीं, निराशाजनक बनाता है।

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

अधिक मैं इस बारे में सोचते हैं, और मैं मैं एक प्रोटोटाइप तरह से jQuery का उपयोग करने के कोशिश कर रहा हूँ लगता है।

वहाँ प्रकाश के कुछ चकाचौंध फ्लैश है कि मेरे पास अभी तक नहीं हुई हो गया है। विशेष रूप से यदि आपने दोनों के साथ बहुत कुछ किया है, तो आप दृष्टिकोण में सबसे मौलिक अंतर क्या पाते हैं? एक से दूसरे में स्विच करते समय आपको अपनी मानसिकता को समायोजित करने की आवश्यकता कैसे होती है?

blindingly स्पष्ट राज्य के लिए डरो मत करो, क्योंकि यह सिर्फ इतना है कि चकाचौंध फ्लैश हो सकता है ...

+0

मैं उसी तरह महसूस हो रहा है और मैं साथ ही अनुभवी पार ब्राउज़र संगतता समस्याओं कि प्रोटोटाइप ठीक से निपटने गया था (कुछ बहुत अस्पष्ट और दुर्लभ मामलों तथापि में) –

+1

* "मैं (करने की कोशिश) अपने आप इसके साथ छड़ी करने के लिए मजबूर करने के लिए है और "मूल" जेएस "* में गिरावट नहीं - यह एक बूंद नहीं है, यह एक सुधार होने की संभावना है। यदि आपको लगता है कि पुस्तकालय के बिना एक विशेष कार्य बेहतर किया जा सकता है, तो संभावना है कि आप सही हैं। –

उत्तर

1

सबसे अच्छी सलाह जो मैं दे सकता हूं वह है "this गले लगाओ"। जेक्यू में, आप हमेशा jQuery ऑब्जेक्ट में लिपटे सेट पर पुनरावृत्ति के बारे में बात कर रहे हैं। सेट के तरीकों में से एक लागू, सेट के सभी तत्वों पर विधि करता है कि क्या उसके 1 या 100 कि विधि हमेशा (accessors कि एक संपत्ति मिल को छोड़ कर) सेट का एक ही उदाहरण वापस जाने के लिए जा रहा है। interation this के संदर्भ में है कि सेट आप जोड़ तोड़ में आइटम के मूल्य है - आम तौर पर कच्चे DOM तत्व है, लेकिन यह एक वस्तु संपत्ति या सरणी आइटम के मूल्य हो सकता है।

+0

"जेक्यू में, आप हमेशा jQuery ऑब्जेक्ट में लिपटे सेट पर पुनरावृत्ति के बारे में बात कर रहे हैं।" इससे मदद मिलती है, निश्चित रूप से, और केवल यह समस्या कम हो सकती है: "सेट के तरीकों में से किसी एक को आमंत्रित करना सेट के सभी तत्वों पर विधि करता है, चाहे वह 1 या 100 हो।" यह (हे) निश्चित रूप से दूसरों के कोड को समझना मुश्किल बनाता है। ऐसा कोई प्रतीत नहीं होता है "हे! यह एक सेट पर फिर से चल रहा है" निर्माण, जैसे प्रोटोटाइप प्रत्येक(), और यह मुझे पागल बनाता है। –

+0

वैसे गैर-jQuery ट्रैवर्स करने योग्य ऑब्जेक्ट्स (सरणी, एनन ऑब्जेक्ट्स, अन्य संरचनाओं) पर पुनरावृत्ति के लिए '$ .each' है और थर्म '$ (' selector ') है। प्रत्येक (functionToPerform)' सेट पर गैर jQuery फ़ंक्शन लागू करने के लिए । लेकिन आपको बस इतना करना है कि सेटर की सामग्री क्या है, यह जानने के लिए चयनकर्ता को देखें। – prodigitalson

4

मुझे लगता है कि परिवर्तन के माध्यम से चला गया। मुख्य बात अपने आप को अधिक बताने के लिए और फिर से jQuery है कि, पहली और महत्वपूर्ण बात है, डोम हेरफेर आसान और अधिक पार मंच सुरक्षित बनाने के बारे में। JQuery में "कमी" नहीं है (प्रोटोटाइप इसे "इंजेक्ट" करने के लिए इस्तेमाल किया जाता है, मुझे लगता है)। क्यूं कर? क्योंकि रखरखाव jQuery के प्राथमिक कार्य के लिए महत्वपूर्ण नहीं मानते हैं।

इस प्रकार, प्रोटोटाइप के बेस ऑब्जेक्ट एक्सटेंशन आपके कोडिंग शैली में घुसने के तरीके के रूप में जब आप अपना कोड प्राप्त करने के लिए अपना कोड लिखते हैं, तो, यह काफी सादे ओल 'jQuery में नहीं होता है। (हालांकि, jQuery के अनुकूल तरीके से उस कार्यक्षमता को प्राप्त करने के लिए सुंदर Underscore.js लाइब्रेरी देखें।)

मेरे लिए, यह समझना आसान हो गया है कि jQuery पर कैसे निर्माण करना है। यह सिर्फ एक अलग तरह की चीज है। अब, jQuery बहुत ठोस है और यह वास्तव में डोम हेरफेर और एचटीएमएल एक बहुत आप क्या सादे जावास्क्रिप्ट से प्राप्त की तुलना में अच्छे तकरार पड़ता है। (मुझे लगता है कि प्रोटोटाइप भी ठीक काम करता है, लेकिन jQuery समस्या पर सुपर-केंद्रित है।)

0

आपको अलग-अलग सोचने की आवश्यकता क्यों है? अपनी शैली को प्रत्येक ढांचे या भाषा के साथ अनुकूलित करने के बजाय, फ्रेमवर्क या भाषा को अपनी पसंद के अनुसार अनुकूलित क्यों न करें। तो आपको बस इतना करना होगा कि इस विचार के लिए खुला होना चाहिए कि आपके पास पहले से ही जानते हुए कोड लिखने या संरचित करने के बेहतर तरीके हो सकते हैं, और जब वे तरीके स्वयं उपस्थित होते हैं, तो निष्पक्ष विश्लेषण करते हैं और फिर उन्हें अपने भंडार में शामिल करते हैं।

पसंद लगभग सभी या कुछ भी नहीं है। दोनों ढांचे में महान प्रसाद हैं, और आप एक महान आवेदन के निर्माण के लिए सद्भाव में दोनों तकनीकों का उपयोग कर सकते हैं।

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