2012-06-30 10 views
12

मैं वेब विकास के लिए नया हूं और एक ऐप में जेएस फ्रेमवर्क की भूमिका को पूरी तरह समझ नहीं पा रहा हूं। मैंने jQuery के साथ शुरुआत की है, लेकिन लोगों ने कहा है कि मुझे अपनी परियोजना के लिए prototype.js या node.js का प्रयास करना चाहिए, जो एक मल्टीप्लेयर रणनीति गेम है।क्या कभी-कभी कई जावास्क्रिप्ट पुस्तकालयों का उपयोग करना आवश्यक है?

क्या पहले से ही एक ढांचे का चयन करना महत्वपूर्ण है, और यह सुनिश्चित करना कि यह आवश्यक सब कुछ करता है ताकि आपको कई ढांचे का उपयोग न करना पड़े?

+2

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

+1

प्रोटोटाइप.जेएस एक बुरा विचार है (आईएमओ) और jQuery के साथ संघर्ष करेगा। दूसरी ओर, node.js, सर्वर-साइड है और पूरी तरह से असंबंधित है और हाँ, आप इसका उपयोग कर सकते हैं। यह शायद इस स्थिति के लिए उपयुक्त होगा, क्योंकि यह आपको आसानी से सॉकेट से बातचीत करने देता है। – Ryan

+0

@minitech। जब आप कहते हैं कि 'प्रोटोटाइप' एक 'jQuery' संघर्ष है तो क्या आपका मतलब '$' प्रतीक है? क्योंकि यह वास्तव में एक "संघर्ष" नहीं है। – gdoron

उत्तर

9

मैं वेब विकास के लिए नया हूँ और पूरी तरह से कोई एप्लिकेशन

आप नए हैं, लेकिन तुम भाग्यशाली हो में भूमिका एक js ढांचे निभाता है समझ में नहीं आता!

कुछ साल पहले डेवलपर्स को सीएसएस (अभी भी वहां थोड़ा सा), ईवेंट हैंडलिंग, एनिमेशन, डोम मैनिपुलेशन के संदर्भ में क्रॉस ब्राउज़र के मुद्दों के आसपास काम करना मुश्किल था। आपको अक्सर प्रत्येक ब्राउज़र के लिए differnet कोड लिखना पड़ा।

जावास्क्रिप्ट पुस्तकालय जीवन में आए और डेवलपर्स की समस्या का समाधान किया, वे दृश्यों के पीछे सभी जादू करते हैं और आप प्रत्येक ब्राउज़र में काम करने के लिए एक ही कोड (लगभग हमेशा) लिखते हैं। दूसरे शब्दों में, जावास्क्रिप्ट पुस्तकालय किसी भी ब्राउज़र के लिए उपयोग करने के लिए कार्यों के लगातार सेट प्रदान करके क्रॉस-ब्राउज़र समस्याओं को हल करने के लिए स्वयं ही इसे लेते हैं।

आम तौर पर, JavaScript लाइब्रेरी इन का ख्याल रखना या इन विकल्प प्रदान करते हैं:

  • क्रॉस-ब्राउज़र से निपटने
  • एनीमेशन मुद्दों
  • कस्टम संवादों और विगेट्स कम कोड
  • लिखने के
  • की क्षमता विशिष्ट चयनकर्ता इंजन
  • डीओएम
  • का निर्माण/संशोधन
  • घटना हैंडलिंग
  • उपयोगिता कार्य
  • AJAX

मैं jQuery के साथ शुरू कर दिया है, लेकिन लोगों को कहा है मैं अपने प्रोजेक्ट है, जो एक है के लिए prototype.js या Node.js की कोशिश करनी चाहिए मल्टीप्लेयर रणनीति खेल।

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

नोड.जेएस पूरी तरह से अलग जानवर है, jQuery या प्रोटोटाइप के विपरीत जो क्लाइंट-साइड जावास्क्रिप्ट पर आधारित है, node.js सर्वर-साइड जावास्क्रिप्ट है।

यह जल्दी पर एक रूपरेखा का चयन करने के लिए, और यकीन है कि यह सब कुछ आप की जरूरत कई चौखटे का उपयोग करने की जरूरत नहीं है करता है, महत्वपूर्ण है?

यह तब तक महत्वपूर्ण नहीं है जब तक आपको इसकी आवश्यकता न हो, जैसे आपकी ज़रूरतों के आधार पर।हालांकि मैं व्यक्तिगत रूप से आपको पर सुझाव दूंगा कि जावास्क्रिप्ट स्वयं पहले सीखें ताकि जब आप बाद में जावास्क्रिप्ट लाइब्रेरी में आएं, तो आप इसे अधिकतर बनाने में सक्षम होना चाहिए।

4

जावास्क्रिप्ट ढांचे की भूमिका बहुत सरल है: आपको उच्च स्तरीय कार्यक्षमता का एक सेट देने के लिए ताकि आप पहले से किए गए कार्यों को पुनर्स्थापित किए बिना और विकास के लिए संरचना प्रदान किए बिना अपना आवेदन बना सकें। आप jQuery या prototype.js के कार्यों के सेट के रूप में सोच सकते हैं जो अन्य लोगों को अक्सर बार-बार लिखा जाना चाहिए ताकि वे पहले से ही आपके लिए इसे कर सकें। स्क्रीन पर एनिमेटिंग ऑब्जेक्ट्स जैसी चीजें, या डोम में तत्वों को विलय और पुनर्व्यवस्थित करना कई अनुप्रयोगों के लिए आम है, इसलिए ये ढांचे और कई अन्य इन सामान्य कार्यों को सरल बनाने का प्रयास करते हैं। दूसरी अच्छी बात यह है कि उन्होंने आपके लिए में प्रत्येक प्लेटफ़ॉर्म के लिए सबसे अच्छा संभव तरीका हल करने के लिए सामान्य समस्याएं हल की हैं, इससे कोई फर्क नहीं पड़ता कि ब्राउज़र या फ़ोन क्या है, आपको एक समान अनुभव मिलता है - यह मामला नहीं था।

Node.js कुछ अलग है। यह एक सर्वर साइड भाषा है (बेशक भाषा जावास्क्रिप्ट है) लेकिन यह php या perl या पायथन या रूबी (या आपके पसंदीदा सर्वर साइड लैंग) की भूमिका निभाती है जिसमें यह वास्तव में डेटाबेस से बात करने और पृष्ठों पर लाने के लिए कोड चलाता है सर्वर जबकि अन्य सामान्य रूप से ब्राउज़र में उपयोगकर्ताओं की मशीनों पर कोड चलाते हैं।

मैं सिर्फ एक ढांचे को चुनने और इसे अच्छी तरह से सीखने की सलाह दूंगा (मेरा व्यक्तिगत वोट व्यापक डेवलपर बेस, nice plugins, अच्छा documentation, और कोड की समझदारी के कारण jQuery है) लेकिन चूंकि इनमें से प्रत्येक सामान्य जावास्क्रिप्ट है हुड, जो भी आप एक में नहीं कर सकते हैं आप सामान्य जावास्क्रिप्ट के साथ पुल कर सकते हैं। व्यावहारिक रूप से आप उनमें से किसी भी में कुछ भी कर सकते हैं, केवल कुछ कार्य एक फ्रेमवर्क में दूसरे की तुलना में सरल होंगे। कई लोगों के साथ काम करते समय, जबकि वे सक्रिय रूप से संघर्ष नहीं कर सकते हैं, यह एक विकास दुःस्वप्न होगा।

अपने विशेष आवेदन के लिए आपको इसे काम करने के लिए एक फ्रंट एंड बैकएंड दोनों की आवश्यकता होगी। यदि आप जिस ऐप को बनाने की कोशिश कर रहे हैं वह एक वेबसाइट है तो हर तरह से इन जावास्क्रिप्ट ढांचे में से एक के साथ जाएं, लेकिन यदि आप एंड्रॉइड या आईफोन पर मोबाइल ऐप के बारे में बात कर रहे हैं तो आपको घटना की आवश्यकता नहीं है।

+0

+1 अच्छी तरह से कहा। और ओपी के लिए, हाँ, आपको केवल एक जेएस ढांचा चुनना चाहिए। मैं jQuery की सलाह देते हैं। –

+1

ओपी आपको केवल एक को चुनना नहीं चाहिए - हालांकि jQuery आपको बहुत सारी कार्यक्षमताओं की पेशकश कर सकता है, जो आपको कभी भी चाहिए - आप अपनी आवश्यकताओं के लिए ढांचे को मिश्रण और मिलान कर सकते हैं –

+1

जबकि आप कर सकते हैं - मैं तर्क दूंगा कि आपको नहीं करना चाहिए। आपको याद रखना होगा कि न केवल प्रत्येक का उपयोग कैसे करें, लेकिन जब आप अपने कोड महीनों में वापस आते हैं तो बाद में कौन से हिस्से ढांचे में होते हैं और जो एक ही ढांचे में होते हैं, वे आसानी से 'साथ मिलकर काम कर सकते हैं'। इसके अलावा यदि आपके पास कई डेवलपर हैं (या यहां तक ​​कि केवल एक से अधिक) तो आप वास्तव में एक से चिपकना चाहते हैं ताकि वे आसानी से मिलकर काम कर सकें। – hackartist

1

बस का विस्तार क्या टिप्पणी में डाल दिया गया है और स्पष्ट है कि इन 'चौखटे' हैं:

के रूप में आप जितने चाहें उतने चौखटे का उपयोग कर सकते हैं और वे (अगर वे अच्छी तरह से लिखा गया है) एक दूसरे के साथ संघर्ष नहीं करना चाहिए । कुछ पुस्तकालयों के साथ समस्या हो सकती है क्योंकि वे $ जैसे विशेष पात्रों को आवंटित करते हैं और क्योंकि जावास्क्रिप्ट में पहले से उपयोग किए जाने वाले विशेष वर्णों की सीमित मात्रा नहीं है, यह लगभग अपरिहार्य है लेकिन आमतौर पर अधिक परिपक्व ढांचे ने इसकी पहचान की है और jQuery.noConflict जो मूल रूप से पहले जो भी उपयोग कर रहा था उसे फिर से सौंपता है। maniuplating डोम

के लिए बहुत बढ़िया चयनकर्ता वाक्य रचना -

कड़ाके की धूप (jQuery में प्रयुक्त):

प्रत्येक ढांचे वहाँ लोड कर रहे हैं और प्रत्येक का अपना विशेष आला/एक विशेष प्रोग्रामिंग के लिए अनुकूल एपीआई है है के रूप में की जरूरत है जैसे jQuery - उत्कृष्ट प्लगइन आर्किटेक्चर, परिपक्व एपीआई जो वहां बहुत सामान्य प्रोग्रामिंग आवश्यकताओं का नरक करता है, उत्कृष्ट यूआई घटकों को jQuery UI

हैंडलबर्स.जेएस - टेम्पलेट आधारित डोम मैनिपुलेशन + कुछ अन्य अच्छे एमवीवीएम (?)

Sproutcore.js, node.js ... आदि आदि - प्रत्येक पर एक पढ़ा है और देखें कि ढांचे का उद्देश्य क्या है।

आप उन्हें एक साथ जोड़ सकते हैं - आपको कभी-कभी संघर्ष मिल सकता है जिसे आपको लेखकों को रिपोर्ट करनी चाहिए लेकिन एक ढांचे तक ही सीमित न हों।

1

उपलब्ध ढांचे की सीमा से परेशान होना आसान है - इन दिनों ऐसा लगता है कि हर महीने ज़ीइटगेस्ट में प्रवेश करने वाले नए व्यक्ति की तरह लग सकता है।

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

jQuery, उदाहरण के लिए, डीओएम मैनिपुलेशन और AJAX के आसपास केंद्रित है। हां इसमें अधिक पहलू हैं, लेकिन ये इसके विक्रय बिंदु हैं। तुलना करें, कहें, Underscore.js, जो डाटा-स्तरीय एपीआई को समृद्ध करने के बारे में है, कुछ कहने के लिए, जैसे, PHP। जावास्क्रिप्ट, आखिरकार, ऐसी भाषाओं की तुलना में पारंपरिक रूप से सीमित एपीआई है (हालांकि यह लगातार ईसीएमए रिलीज और विक्रेता-विशिष्ट एपीआई के साथ समृद्ध हो रहा है)।

नोड.जेएस, जैसा कि हैकर्टिस्ट ने अपने उत्तर में उल्लेख किया है, उपरोक्त दोनों में से पूरी तरह से असंबंधित है कि यह सर्वर-पक्ष नहीं है, ग्राहक नहीं।

मैं विशेष रूप से आपके शुरुआती चरण में, कई पुस्तकालयों का उपयोग करके, जो फोकस में समान हैं, से बचेंगे। आप उन परियोजनाओं में आते हैं जो jQuery UI दोनों में लोड होते हैं और कहते हैं, extJS। हां यह आपको खेलने के लिए और अधिक देता है, लेकिन ओवरलैप को देखते हुए, लाभ आपके पृष्ठ के भार भार पर नकारात्मक प्रभाव से अधिक है। उस व्यक्ति के साथ जाएं जिसे आप देखना चाहते हैं और, महत्वपूर्ण रूप से, जिनके दस्तावेज़ और समुदाय आपको सहज महसूस करते हैं।

अंत में, दिमाग में पुस्तकालयों और ढांचे को ध्यान में रखना वास्तव में एक ही चीज़ नहीं है, हालांकि अक्सर शब्दों को कुछ हद तक अनजाने में उपयोग किया जाता है। वे दोनों जेएस हुड के नीचे हैं; एक पुस्तकालय कार्यों और पैटर्न के प्रावधान की दिशा में तैयार किया जाता है, कम से कम आमतौर पर, यदि आप इसे देशी, या 'वेनिला', जावास्क्रिप्ट में करते हैं, तो कम से कम सामान्य कोड लिखना मतलब है, जबकि एक ढांचा अति-संग्रह संरचना से संबंधित है आपके कोड का और कैसे विभिन्न भागों संबंधित या इंटरऑपरेट करते हैं।

+0

उत्तर के लिए बहुत बहुत धन्यवाद हर कोई। ये स्पष्टीकरण उत्कृष्ट रूप से विस्तृत हैं। मुझे अब जिस तरह से काम करता है, उसके लिए मुझे अच्छा लगा है। – RapsFan1981

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

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