2011-06-02 30 views
22

मैं थोड़ी देर के लिए jQuery (और इसके कुछ मामूली प्लगइन्स) का उपयोगकर्ता रहा हूं। पिछले कुछ वर्षों में विकसित जावास्क्रिप्ट कोड को सबसे अच्छा बताया जा सकता है ... गन्दा। इसने वैश्विक चर और कार्यों का एक टन यहां और वहां इस्तेमाल किया, कोड को व्यवस्थित करने के मानक तरीकों का उपयोग नहीं किया, न ही किसी भी डिजाइन पैटर्न का उपयोग किया।जावास्क्रिप्ट: सभी ढांचे और डिजाइन दर्शनों को कैसे समझें?

मैं वर्तमान में वेबसाइट का नया संस्करण बना रहा हूं, और मैंने बैकएंड को PEAR::MDB2 और Smarty टेम्पलेट्स के साथ पूरा कर लिया है। शेष कुछ वर्गों के साथ सिर्फ होमब्री PHP है।

अब मैं उस बिंदु पर हूं जहां मैं कुछ विशेषताओं के उपयोगकर्ता-मित्रता में सुधार के लिए वेबसाइट के शीर्ष पर जावास्क्रिप्ट परत जोड़ूंगा। (यह सुनिश्चित करते हुए कि सबकुछ बढ़िया ढंग से घटता है) मैं बेहतर, क्लीनर, अधिक संगठित जावास्क्रिप्ट लिखना चाहता हूं, इसलिए मैंने थोड़ा सा शोध किया। मैंने स्टेफानोव के Object-Oriented Javascript को कुछ अवधारणाओं पर बेहतर समझने के लिए पढ़ा, जिन्हें मैं केवल थोड़ी सी (प्रोटोटाइप, कन्स्ट्रक्टर इत्यादि) के बारे में जानता था। अब मैं एक बिंदु पर फंस गया हूं जहां मुझे आश्चर्य है कि जावास्क्रिप्ट ढांचे का उपयोग करना चाहिए, और इसे कैसे व्यवस्थित करना है।

अपना शोध करने के बाद, मैं Cappuccino & Objective-J समझ गई और Sproutcore मैं के लिए क्या नहीं देख रहा था थे। कैप्चिनो के बारे में पृष्ठ को उद्धृत करने के लिए:

कैप्चिनो वेब साइट बनाने, या मौजूदा साइटों को और अधिक "गतिशील" बनाने के लिए डिज़ाइन नहीं किया गया है। हमें लगता है कि इन लक्ष्यों को एक ही ढांचे द्वारा अच्छी तरह से सेवा के लिए आवेदन विकास के लोगों से बहुत दूर हटा दिया गया है। प्रोटोटाइप और jQuery जैसी परियोजनाएं उन कार्यों पर उत्कृष्ट हैं

तो ऐसा ही है। तब मुझे Coffee Script पता चला, जो एक से एक "कंपाइलर" है और मेरे कोड के वास्तविक संगठन के साथ मेरी सहायता नहीं करेगा।

मैं भी कुछ लेख है कि दिशा-निर्देश देने पर ठोकर खाई:

मैं भी बारे में Backbone.js, Shoestring, JavaScriptMVC, Google Loader, jQuery Tools, jQuery UI में पता चला। मैं वास्तव में यह सब का क्या करना है पता नहीं है ... बातें मुझे पता है:

  • मैं बहुत जटिल कुछ सीखने में बहुत अधिक समय निवेश करने के लिए नहीं करना चाहते हैं, मैं चीजों को सरल और लचीला बनाए रखना चाहते हैं जितना संभव हो (यही कारण है कि मैं बैकएंड पर Symfony का उपयोग नहीं करता, उदाहरण के लिए), अभी तक साफ और व्यवस्थित है।
  • मैं jQuery का उपयोग करना चाहता हूं, सवाल यह है कि, इसके साथ मुझे क्या उपयोग करना चाहिए? (यह भी संगत है)

अभी, मैं jQuery और jQuery टूल्स का उपयोग करता हूं और सरल गुणों और विधियों के साथ सरल नामस्थान/ऑब्जेक्ट शाब्दिक में "व्यवस्थित" करता हूं और साइट के स्थान के बाद भी, मैं सिर्फ कुंजी के साथ सरल vsprintf (जैसा कि मैं बैकएंड पर करता हूं) का उपयोग करने की योजना बना रहा हूं: बैकएंड द्वारा प्रदान की गई ऑब्जेक्ट शाब्दिक से लोड किए गए मान जोड़े। जावास्क्रिप्ट एमवीसी दिलचस्प लगता है, लेकिन मुझे डर है कि यह एक परियोजना के लिए बहुत जटिलता लाएगा जो काफी छोटे आकार का है। यही वह जगह है जहां मुझे आपकी सलाह चाहिए! पहले से ही बहुत - बहुत धन्यवाद।

+6

+1 एक प्रश्न पूछने से पहले अनुसंधान करने के लिए +1 ... –

+0

मैं सहमत हूं कि यदि आप jQuery से सावधान नहीं हैं, तो आप एक गन्दा ग्राहक साइड स्क्रिप्ट के साथ समाप्त हो जाएंगे। मैंने पहले अनुभव किया है जब मैंने पहली बार एक असली परियोजना में jQuery की कोशिश की थी। – OnesimusUnbound

+1

मैं jQuery का एक बड़ा उपयोगकर्ता हूं। हालांकि, फ्लोप्लेयर के ** jQuery टूल्स ** से दूर रहें यदि आप वास्तव में संगठित और तार्किक कोड चाहते हैं। यह पुराना तरीका है (मृत?), बग से भरा, अपने समुदाय द्वारा लगभग असमर्थित और _ "कम लिखो, अधिक करें" _ की पूरी तरह से पीछे की jQuery टैग-लाइन प्राप्त करता है। jQuery उपकरण jQuery के बारे में आपको जो कुछ पता होना चाहिए उसके प्रति काउंटर चलाता है और कितना अच्छा jQuery प्लगइन्स काम करना चाहिए ... बिल्कुल सभी IMHO। – Sparky

उत्तर

4

ठीक है, एक जवाब में मेरी प्रयास:

जिस तरह से करने के लिए कोई 'सर्वश्रेष्ठ' यह करने के लिए है। अब आप जानते हैं कि वहां क्या है और मुझे लगता है कि आप जो चाहते हैं उसके लिए आपको अपने लिए प्राथमिकता हो सकती है। उस स्थिति में, एक ढांचा चुनें और इसे अंदर से सीखें। (अपने बुलबुले को फटने के लिए खेद है, लेकिन प्रत्येक ढांचे में सीखने की वक्र है, कुछ खड़ी है, कुछ बहुत ही आसान है, लेकिन अंत में इसका उपयोग करने के लिए आपको इसमें निवेश करना होगा। बस इसे करें, आपको खेद नहीं होगा)।

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

वहाँ कैसे jQuery में अपने कोड की संरचना करने पर कुछ अच्छा व्याख्यान/और ट्यूटोरियल सलाह के साथ कर रहे हैं:

कुछ शैली गाइड :

उपकरण

स्टैंडर्ड काम करता है (जावास्क्रिप्ट)

हो सकती है और अधिक .. शायद और अधिक लोगों को योगदान कर सकते हैं, लेकिन मैं यह भी लगता है कि आप ' अपने हाथों को गंदे होने से पहले आप जो सीख सकते हैं उसके अंत तक पहुंच गए हैं।इनमें से कई गाइड बहुत ही सामान्य तरीके से लिखे गए हैं, लेकिन दिलचस्प बात यह है कि कई विशिष्ट परिस्थितियों में जावास्क्रिप्ट को बुलाया जाता है। यह केवल कुछ कोड पोस्ट करने के लिए उपयोगी हो सकता है जिसे आप "गन्दा" के रूप में देखते हैं और हम यह समझने में आपकी सहायता कर सकते हैं कि इसे बेहतर तरीके से कैसे किया जाए। सौभाग्य!

0

क्या आप ऐसी साइट सेट अप करेंगे जो AJAX का भारी उपयोग करेगा? फिर आप क्लाइंट साइड जेएस को व्यवस्थित करने के लिए Backbone.js का उपयोग कर सकते हैं।

संदर्भ के लिए यह लेख पढ़ें: http://www.codethinked.com/building-epic-win-with-backbone-js

+0

यह कुछ AJAX का उपयोग करेगा लेकिन कहीं भी "भारी" के पास नहीं होगा। मैं उस लेख को पढ़ूंगा! धन्यवाद। –

2

आप चाहिए watch the video and read the links in this article और उसके बाद आप अपने आप को फिर से करता है, तो jQuery सही उपकरण है पूछना चाहिए। हो सकता है कि आप डोजो का उपयोग करें, जो बड़ी परियोजनाओं के लिए बहुत बेहतर है या आप रीढ़ की हड्डी पर नजर डालें और जहां आप jquery के साथ रह सकते हैं। उन सभी के बाद अधिक "जावास्क्रिप्ट" हैं, फिर कुछ sproutcore, cappuciono या यहां तक ​​कि जीडब्ल्यूटी जैसे कुछ। और जब आप jquery से आते हैं तो समझना भी बहुत आसान है।

1

विचार करने के लिए एक ढांचा निश्चित रूप से फेसबुक से ReactJS है। यह ढांचा कई तरीकों से बहुत चिकना है।

सबसे पहले आपको यह जानना है कि यह एक दृश्य ढांचा है। इसे पृष्ठों के पूर्व-प्रतिपादन करने के लिए सर्वर-साइड का उपयोग किया जा सकता है, लेकिन यह वास्तव में ग्राहक पक्ष पर चमकता है। चूंकि यह एक दृश्य ढांचा है, इसका उपयोग रीढ़ की हड्डी या किसी अन्य "बैक-फ्रंट" -ेंड फ्रेमवर्क के साथ किया जा सकता है।

प्रतिक्रिया का मुख्य बिंदु इसकी रैपिडिटी है। यह स्मृति में वर्चुअल डोम रखता है और सभी वेबपृष्ठ घटनाओं को वर्चुअलाइज करता है। इसलिए आभासी घटनाओं का उपयोग घटनाओं ब्राउज़र अज्ञेयवादी रखने के लिए किया जाता है।

आभासी डॉम प्रकार प्रोग्रामिंग को गतिशील साइट बनाने जैसा कि आप पुरानी स्थिर वेबसाइट प्रोग्रामिंग कर रहे थे। आप संपूर्ण एचटीएमएल को व्यू इंजन में प्रस्तुत करने के लिए शूट कर सकते हैं (जैसे कि आप पूरे पृष्ठ को "पुनः प्रस्तुत" कर रहे थे) और यह डीओएम ऑपरेशंस का प्रबंधन करेगा। यह नए आभासी डीओएम और वर्तमान वर्चुअल डोम के बीच एक अंतर है और केवल डालने की आवश्यकता वाले नोड्स को सम्मिलित करता है। इस तरह आप डोम ऑप्स की संख्या को कम करते हैं और इस प्रकार अपनी रेंडर गति को बहुत बढ़ाते हैं।

this tutorial शुरू करने के लिए एक अच्छी जगह है जो टोडो एप्लिकेशन को समझने के लिए "फ़्लक्स" (फेसबुक द्वारा अपनी साइट के लिए डिज़ाइन किया गया वेब प्रवाह) का उपयोग करने का तरीका दिखाता है!

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