2016-12-20 9 views
79

मैं सिर्फ वेब विकास शुरू कर, और अब तक मुझे पता है:अंतर jQuery बनाम AngularJS बनाम Node.js

एचटीएमएल - वेबसाइट का लेआउट

सीएसएस - यह बहुत

बना

जावास्क्रिप्ट - कार्यक्षमता

तो क्या jQuery, AngularJS, और Node.js?

एक त्वरित खोज करने के बाद, मैंने पाया jQuery एक "JavaScript लाइब्रेरी", AngularJS, "जावास्क्रिप्ट आधारित खुला स्रोत सामने के अंत वेब अनुप्रयोग फ्रेमवर्क" है और Node.js "जावास्क्रिप्ट क्रम पर्यावरण" है।

वे सभी जावास्क्रिप्ट से संबंधित प्रतीत होते हैं, तो क्या वे नई भाषाएं हैं? 'ढांचा/पुस्तकालय' का क्या अर्थ है?

एक साधारण उत्तर की सराहना की जाएगी। (मैं बस वेब प्रोग्रामिंग शुरू कर रहा हूं, लेकिन मैं प्रोग्रामिंग से परिचित हूं)।

+2

ए "लाइब्रेरी" मूल रूप से केवल उपयोगी कार्यों का एक संग्रह है जिसे किसी और ने आपके लिए लिखा है और परीक्षण किया है - jQuery जावास्क्रिप्ट कार्यों का संग्रह है।एक "ढांचा" एक प्रकार का अमूर्त है जिसमें सामान्य अनुप्रयोग संरचना कोड आपके लिए लिखा गया है, और आप अपने विशिष्ट ऐप की ज़रूरतों के अनुरूप उचित बिट्स को ओवरराइड कर सकते हैं। नोडजेएस एक ऐसा उपकरण है जो आपको ब्राउजर के अलावा कहीं और जावास्क्रिप्ट चलाने देता है (अक्सर वेब सर्वर पर, इसलिए जावा या डॉटनेट या PHP या जो भी हो)। – nnnnnn

+3

आप ठीक होंगे। तुम जानते हो क्यों? क्योंकि आप एक अंग्रेजी वक्ता हैं। आपके लिए पहले से ही वहां बहुत सारी चीजें हैं। आपको बस समय लेने और इसे सीखने की जरूरत है। मेरे देश में, अंग्रेजी एक बड़ा मुद्दा है। मैं बहुत से लोगों को जानता हूं, सीखने के प्रोग्रामिंग को संघर्ष कर रहा हूं (बहुत कुछ छोड़ दिया गया है और अन्य नौकरियों में बदल गया है) क्योंकि वहां अंग्रेजी अच्छी नहीं है। फिर भी, जैसा कि मैंने कहा, इसमें आपके लिए बहुत समय लगेगा। – vothaison

+0

यह भी देखें [यह प्रश्न] (http://stackoverflow.com/questions/148747/what-is-the-difference-between-a-framework-and-a-library)। – nnnnnn

उत्तर

139

jQuery है एक पुस्तकालय (क्लाइंट साइड)

jQuery एक तेज, छोटे, हल्के है , "कम लिखें, और करें", और फीचर समृद्ध जावास्क्रिप्ट लाइब्रेरी।

यह HTML दस्तावेज़ ट्रावर्सल और हेरफेर, घटना से निपटने, एनीमेशन तरह बातें बनाता है, और Ajax ज्यादा एक आसान से उपयोग एपीआई कि ब्राउज़रों की एक भीड़ में काम करता है के साथ सरल।

AngularJS एक MVC ढांचे (क्लाइंट साइड)

AngularJS है एक क्लाइंट-साइड जावास्क्रिप्ट MVC एक गतिशील वेब आवेदन को विकसित करने के ढांचे है।

यह आप अपने टेम्पलेट भाषा के रूप में HTML का उपयोग करने देता है और आप HTML के वाक्य रचना का विस्तार स्पष्ट रूप से और संक्षेप आपके आवेदन के घटकों को व्यक्त करने की सुविधा देता है। AngularJS का डेटा बाध्यकारी और निर्भरता इंजेक्शन उस कोड के अधिकांश को खत्म करता है जिसे आपको अन्यथा लिखना होगा। और यह सब ब्राउज़र के भीतर होता है, जो इसे किसी भी सर्वर प्रौद्योगिकी के साथ एक आदर्श भागीदार बनाता है। AngularJS मूल रूप से Google में एक प्रोजेक्ट के रूप में शुरू किया गया था, लेकिन अब यह एक ओपन सोर्स फ्रेमवर्क है।

Node.js एक मंच और क्रम पर्यावरण (सर्वर साइड) है

Node.js सर्वर साइड के विकास और पर बनाया गया अनुप्रयोगों नेटवर्किंग के लिए एक खुला स्रोत, पार मंच क्रम पर्यावरण है Google क्रोम का जावास्क्रिप्ट इंजन (वी 8 इंजन)। Node.js अनुप्रयोग जावास्क्रिप्ट में लिखे गए हैं, और ओएस एक्स, माइक्रोसॉफ्ट विंडोज और लिनक्स पर नोड.जेएस रनटाइम के भीतर चलाया जा सकता है।

नोड.जेएस विभिन्न जावास्क्रिप्ट मॉड्यूल की समृद्ध लाइब्रेरी भी प्रदान करता है जो नोड.जेएस का उपयोग करके वेब अनुप्रयोगों के विकास को काफी हद तक सरल बनाता है। Node.js एक इवेंट-संचालित, गैर-अवरुद्ध I/O मॉडल का उपयोग करता है जो इसे हल्के और कुशल बनाता है, वितरित उपकरणों में चलने वाले डेटा-गहन रीयल-टाइम अनुप्रयोगों के लिए बिल्कुल सही है।

लाइब्रेरी बनाम फ्रेमवर्क

एक पुस्तकालय और एक रूपरेखा के बीच मुख्य अंतर " नियंत्रण के उलट है।" जब आप लाइब्रेरी से कोई विधि कॉल करते हैं, तो आप नियंत्रण में हैं। लेकिन ढांचे के साथ, नियंत्रण उलटा हुआ है: फ्रेमवर्क आपको कॉल करता है।

Enter image description here

लाइब्रेरी

कार्य करता है जो उपयोगी है जब वेब अनुप्रयोगों लेखन कर रहे हैं का एक संग्रह। आपका कोड प्रभारी है और यह फिट होने पर लाइब्रेरी में कॉल करता है। उदा।, JQuery।

फ्रेमवर्क

एक वेब अनुप्रयोग है, जहां अपने कोड विवरण में भर जाता है की एक विशेष कार्यान्वयन। ढांचा प्रभारी है, और यह आपके कोड में कॉल करता है जब इसे कुछ एप्लिकेशन-विशिष्ट की आवश्यकता होती है। जैसे, AngularJS, Durandal, Ember.js, आदि

+1

यह वास्तव में एक अच्छा जवाब है। मुझे बहुत मदद की! चित्र –

+1

आरेखण के लिए अंक –

+1

यह अब तक का सबसे अच्छा जवाब है और बहुत अच्छी तरह से समझाया गया है –

3

आप इंटरैक्टिव वेब साइट बनाने के लिए एचटीएमएल, सीएसएस और जावास्क्रिप्ट का उपयोग करते हैं।

jQuery जावास्क्रिप्ट में लिखे गए एक उपकरण है।

AngularJS जावास्क्रिप्ट में लिखा गया एक उपकरण है।

प्रतिक्रिया जावास्क्रिप्ट में लिखी गई एक उपकरण है।

ये टूल HTML, CSS और जावास्क्रिप्ट के बीच अपने स्वयं के नियमों के अनुसार इंटरैक्शन प्रबंधित करने में आपकी सहायता करते हैं। एक बार जब उपकरण वास्तव में बड़ा हो जाता है, तो यह इसकी विशेषताओं के आधार पर "लाइब्रेरी" या "फ्रेमवर्क" जैसे नाम ले सकता है।

हम अक्सर वेब ब्राउज़र में जावास्क्रिप्ट चलाते हैं। लेकिन कुछ साल पहले, इस बात को Node.js कहा जाता था जिसने हमें ब्राउज़र के बाहर आसानी से जावास्क्रिप्ट चलाने की अनुमति दी। मुझे इसके बारे में सोचना पसंद है "एक प्रोग्राम जो ब्राउज़र के बाहर जावास्क्रिप्ट चलाता है" (जिसका अर्थ है ... देखने के लिए कोई HTML या CSS नहीं है)।

3
  • फ्रेमवर्क: यह की दी गई संरचना कैसे आप अपने कोड प्रस्तुत करना चाहिए वर्णन करता है। किसी विशिष्ट समस्या को हल/सरल बनाने या "ऑर्डर" में अपना आर्किटेक्चर लाने के लिए कुछ सहायक, कन्स्ट्रक्टर इत्यादि के साथ कोड-टेम्पलेट की तरह बहुत अधिक है। उदाहरण, Backbone.js, RequJS, Socket.IO। एक ढांचा सामान्य अनुप्रयोग कार्यक्षमता को समाहित करता है, जिससे डेवलपर अपने अनुप्रयोगों के लिए अद्वितीय भागों पर ध्यान केंद्रित कर सकता है।

  • लाइब्रेरी: एक पूरी टूलकिट जो अत्यधिक विभिन्न परतों, ब्राउज़र, डोम मॉडल, आदि इसके अलावा एक अच्छा टूलकिट के रूप में की तरह सार है, यह उपकरण और स्वच्छ सामान का एक बहुत जो सामान्य रूप में, के साथ काम करने प्रदान करता है, आपके कोडिंग अनुभव को सरल बनाता है। उदाहरण jQuery और MooTools हैं।

अधिक जानकारी के लिए here देखें।

+0

* "लाइब्रेरी: एक संपूर्ण टूलकिट है" * - यह ध्यान में रखते हुए कि यह एक बहुत छोटा टूलकिट हो सकता है यदि इसका उद्देश्य बस, समय, समय डेटा के साथ सौदा करने के लिए है। – nnnnnn

4

यहाँ क्यों वे दिन-ब-दिन और अधिक लोकप्रिय हो रही है कर रहे हैं:

jQuery

  • Jquery कोड अपेक्षाकृत छोटे होते हैं। कभी-कभी jQuery कोड की केवल पांच पंक्तियां पारंपरिक जावास्क्रिप्ट कोड की 25 लाइनों के बराबर होती हैं (उदाहरण के लिए AJAX के साथ डेटा फ़ाइल लोड करना)। इसका मतलब है कम कोड और बहुत छोटी फाइलें।
  • बड़े पुस्तकालय: jQuery आप अन्य जावास्क्रिप्ट पुस्तकालयों की तुलना में कार्यों की भीड़ प्रदर्शन करने के लिए सक्षम बनाता है।
  • सुपर आसान अजाक्स के साथ काम: jQuery आप बहुत आसानी से अजाक्स टेम्पलेट्स विकसित की सुविधा देता है, अजाक्स एक आकर्षक इंटरफेस जहां कार्रवाई पुनः लोड किया जा करने के लिए पूरे पेज की आवश्यकता के बिना पृष्ठों पर किया जा सकता सक्षम बनाता है।

AngularJS

  • दो-तरफा डेटा-बाइंडिंग: आप jQuery में एक साधारण दो तरह डेटा-बाइंडिंग घटना लिख ​​सकते हैं, जावास्क्रिप्ट MVC पुस्तकालयों के लिए एक अधिक कथात्मक (HTML का उपयोग कर देते हैं) मॉडल को आपके दृश्य में जोड़ने का तरीका।
  • ग्रेट के लिए एसपीए (single-page applications): AngularJS तरह पुस्तकालय, औरेलिया, Ember.js, और Meteor पाइपलाइन के सभी आप के लिए बजाय jQuery

Node.js में इसके बारे में सब लिखने के प्रदान

  • यह तेज़ है: बिजली के तेजी से जावास्क्रिप्ट निष्पादन के अलावा, नोड.जेएस के पीछे असली जादू घटना लूप है। इवेंट लूप एकल थ्रेड है जो सभी I/O संचालन को असीमित रूप से करता है। परंपरागत रूप से, आई/ओ के संचालन या तो तुल्यकालिक चलाने (अवरुद्ध) या एसिंक्रोनस रूप से समानांतर धागे बंद को उत्पन्न करने के काम को करने के द्वारा।
  • रीयल-टाइम मेड आसान: यदि Node.js कई समवर्ती कनेक्शन पर उत्कृष्टता प्राप्त करता है, तो यह समझ में आता है कि यह बहु-उपयोगकर्ता, रीयल-टाइम वेब एप्लिकेशन जैसे चैट और गेम पर उत्कृष्टता प्राप्त करता है। Node.js का ईवेंट लूप बहु-उपयोगकर्ता आवश्यकता का ख्याल रखता है।
+2

* "jQuery कोड की 5 पंक्तियां पारंपरिक जावास्क्रिप्ट कोड की 25 लाइनों के बराबर हैं" * - जो आप करने की कोशिश कर रहे हैं उसके आधार पर। कुछ कार्यों के लिए न्यूनतम अंतर होता है, दूसरों के लिए एक बड़ा अंतर होता है। * "इसका मतलब है छोटी फाइलें और तेजी से लोडिंग वेब पेज।" * - सिवाय इसके कि कोड jQuery ने आपको अपने लिए लिखने से बचाया है, यह सब jQuery फ़ाइल में निहित है जिसे ब्राउज़र में भी डाउनलोड करना होगा। तो कोड की कुल राशि शायद अधिक है। – nnnnnn

+0

दस्तावेज़ लोड होने पर उन फ़ाइलों को लोड किया जाता है। चूंकि सबसे अच्छा अभ्यास डीओएम लोड होने तक जेएस का उपयोग नहीं करना है। वे आपके क्लिक या होवर ईवेंट की निष्पादन गति में कोई फर्क नहीं पड़ता – ab29007

+0

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

20

सरल शब्दों में,

  • jQuery - एक जावास्क्रिप्ट ढांचे आप HTML और सीएसएस
  • नोड को व्यवस्थित में मदद करता है - HTML और सीएसएस
  • AngularJS हेरफेर करने के लिए जावास्क्रिप्ट कार्यों का एक संग्रह है। जेएस- एक जावास्क्रिप्ट रनटाइम है ... आपके सर्वर या स्थानीय मशीन पर ब्राउज़र की तरह, लेकिन सभी ब्राउज़र प्रतिपादन इंजन और अतिरिक्त के बिना .. यह सिर्फ एक रनटाइम

लाइब्रेरी बनाम का बड़ा अंतर।सरल शब्दों में ढांचा:
फ्रेमवर्क कुछ वास्तुकला लगाता है और आवेदन अपनी उम्मीदों का पालन करने के
लाइब्रेरी बहुत विशिष्ट समस्याओं को हल करने के उद्देश्य से निम्न स्तर के निर्माण अक्सर बारीक कार्यों प्रदान ब्लॉकों का एक संग्रह है उम्मीद है (यानी jquery.post () समारोह) *

7

jQuery

jQuery एक पुस्तकालय है कि आप के लिए बहुत कुछ करता है। इसमें बहुत सारे आसान, आमतौर पर उपयोग किए जाने वाले फ़ंक्शन शामिल हैं ताकि आपको यह कोड स्वयं लिखना न पड़े। पत्थर की उम्र में बढ़ई होने के नाते, या आपके निपटान में बिजली उपकरण की एक श्रृंखला होने के बीच यह अंतर है।

AngularJS

AngularJS एक रूपरेखा सामने के अंत, ग्राफिकल यूजर इंटरफेस (जीयूआई) इंटरेक्टिव वेब साइटों और वेब अनुप्रयोगों के लिए का निर्माण करने के लिए प्रयोग किया जाता है। यह एक शक्तिशाली संयोजन जब Node.js के साथ प्रयोग करता है

Node.js

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

फ़्रेमवर्क में

फ़्रेमवर्क पेशेवर बिल्डरों की एक टीम करार आप के लिए काम करने के लिए की तरह हैं। आप पर्याप्त विवरण में नौकरी का वर्णन करते हैं, और वे इसे लेते हैं और वास्तव में इसे पूरा करते हैं। इस प्रकार, नौकरी करने के बजाए, बिल्डरों को समझने के लिए सही भाषा में नौकरी विनिर्देशों के साथ आपका कार्य कम हो गया है।

एंगुलरजेएस इलेक्ट्रिक के साथ इंटीरियर डिजाइन टीम की तरह होगा, और नोड.जेएस सबकुछ होगा। Oversimplified? शायद। लेकिन आपने एक सरल स्पष्टीकरण मांगा।

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

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