क्या जावास्क्रिप्ट एक जावास्क्रिप्ट लाइब्रेरी या ढांचा है? [बन्द है]


121

यहाँ, jquery को फ्रेमवर्क श्रेणी के अंतर्गत उल्लिखित किया गया है: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

क्या जावास्क्रिप्ट एक जावास्क्रिप्ट लाइब्रेरी या ढांचा है?


40
एक व्यक्ति का पुस्तकालय दूसरे व्यक्ति का ढांचा है।
nnnnnn

1
यह यहाँ का विषय है क्योंकि हर उत्तर समान रूप से मान्य है: "आपका पसंदीदा ______ क्या है?" । इसके अलावा, अगर यह सब एक पुस्तकालय या एक रूपरेखा है, तो इससे क्या फर्क पड़ता है?
EJoshuaS -

जवाबों:


169

एक पुस्तकालय। मुखपृष्ठ के अनुसार , और जिसके साथ मैं सहमत हूं।

एक ढांचा एक ऐसी चीज है जो आमतौर पर एक समाधान को लागू करने का एक निश्चित तरीका है, जबकि jQuery लागू करने के लिए एक उपकरण है जो आप आसान करना चाहते हैं।


55
+1। एक पुस्तकालय कुछ है जिसे आप अपने कार्यक्रम से बुलाते हैं। एक फ्रेमवर्क कुछ ऐसा है जो आपके प्रोग्राम में कॉल करता है।
थिलो

1
लाइब्रेरी बनाम फ्रेमवर्क तुलना के लिए, "इनवर्टर ऑफ कंट्रोल" stackoverflow.com/a/3057818/2144912
cheshireoctopus

30

14
जबकि मैं सहमत हूं, स्व-दिया गया नाम / स्लोगन प्रमाण कुछ भी नहीं है। वहाँ तथाकथित तथाकथित "चौखटे" हैं हजारों वास्तव में पुस्तकालय हैं।
kapex

@ कापिप लेकिन उल्टा मामला कम आम है: कई ढांचे खुद को "पुस्तकालय" नहीं कहते हैं। मुझे लगता है कि "रूपरेखा" शब्द कुछ के लिए कामुक लगता है ...
फ्रैंकलिन यू

19

निश्चित रूप से, यह एक जावास्क्रिप्ट पुस्तकालय है। लेकिन एक ढांचा होने या न होने के बारे में, मुझे लगता है कि यह एक ढांचा नहीं है। सॉफ्टवेयर-ढांचे की विकिपीडिया परिभाषा पर एक नजर :

यह एक परिभाषित अनुप्रयोग प्रोग्रामिंग इंटरफ़ेस प्रदान करने वाले सॉफ्टवेयर पुस्तकालयों का एक संग्रह है।

और jQuery सिर्फ एक पुस्तकालय है। उसके बाद यह कहता है:

चौखटे में मुख्य विशिष्ट विशेषताएं हैं जो उन्हें सामान्य पुस्तकालयों से अलग करती हैं:

  1. नियंत्रण का उलटा - एक ढांचे में, पुस्तकालयों या सामान्य उपयोगकर्ता अनुप्रयोगों के विपरीत, समग्र कार्यक्रम के नियंत्रण का प्रवाह कॉलर द्वारा निर्धारित नहीं किया जाता है, लेकिन फ्रेमवर्क द्वारा।

इसलिए, मुझे लगता है कि यह कोई रूपरेखा नहीं है।


9

एंगुलरजस वेब साइट के अनुसार

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

5

जरूरी नहीं कि फ्रेमवर्क और लिबेर्री परस्पर अनन्य शब्द हों। आमतौर पर फ्रेमवर्क एक लिबरी या पुस्तकालयों का संग्रह है।

कड़ाई से बोलना, jQuery एक पुस्तकालय है, लेकिन, एक हद तक, यह एक सॉफ्टवेयर ढांचे की परिभाषा को पूरा करता है। हालांकि कई लोग यह तर्क देंगे कि jQuery एक सॉफ्टवेयर फ्रेमवर्क की परिभाषा को पूरी तरह से पर्याप्त रूप से पूरा नहीं करता है, तथ्य यह है कि कोई भी अन्य जावास्क्रिप्ट फ्रेमवर्क पूरी तरह से एक फ्रेमवर्क की परिभाषा को पूरा नहीं करता है।

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

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


2

मैं यहां सभी उत्तरों से सहमत हूं कि jQuery वास्तव में एक पुस्तकालय है, न कि एक रूपरेखा। जैसा कि सईद के उत्तर द्वारा निर्दिष्ट किया गया है, महत्वपूर्ण विशिष्ट विशेषताओं में से एक नियंत्रण का उलटा है। हालाँकि आप स्वयं की रूपरेखा बनाने के लिए jQuery की कार्यक्षमता का उपयोग कर सकते हैं।

उदाहरण: jQuery के शीर्ष पर निर्मित परियोजनाएं हैं जिन्हें फ्रेमवर्क के रूप में परिभाषित किया गया है: jQuery मोबाइल: कुछ को नाम देने के लिए एक टच-अनुकूलित वेब फ्रेमवर्क , JavaScriptMVC और sammy.js

JQuery के शीर्ष पर निर्मित अन्य पुस्तकालय भी हैं, जैसे jQuery UI

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


1

यदि हम नियंत्रण के व्युत्क्रम के बारे में बात करते हैं, जो कि उपरोक्त थ्रेड में लगभग सभी लोग बात करते हैं तो jQuery एक फ्रेमवर्क है।

इसे IOC मिला है, जैसे कि जब हम फ़ंक्शन $ (डॉक्यूमेंट) लिखते हैं। पहले से ही {} ... यह कंटेनर है जो इस विधि को कॉल करता है और हम बस हमारे कोड को ब्रेस के अंदर डालते हैं। हम इस पद्धति के कॉलर नहीं हैं और इसलिए "नियंत्रण का व्युत्क्रम"

इस तरह jQuery एक फ्रेमवर्क है।


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

@NathanTuggy तो यहां तक ​​कि फ्रेमवर्क बनाम लीब के बारे में विस्तृत चर्चा IOC के बारे में क्यों है। अगर यह वहां है, यह वहां है। क्यों "भरोसा" या "भरोसा नहीं" के बारे में बात करते हैं।
पिंकमैन

क्योंकि फ्रेमवर्क-शैली IoC का उपयोग करने की आवश्यकता की विशेषता है । विशिष्ट तरीकों से वांछित, ला कार्टे के रूप में, इसका उपयोग करने की संभावना नहीं है। एक रूपरेखा में, आप एक विकल्प नहीं है: नियंत्रण है उल्टे।
नाथन तुग्गी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.