जावास्क्रिप्ट के साथ jQuery फिट बैठता है, जैसे JavaScriptMVC, BackboneJS, SproutCore और नॉकआउट?


14

मैं पिछले 2 वर्षों से खुशी से JQuery का उपयोग कर रहा हूं और इसके साथ कुछ बहुत ही शांत कार्यक्षमता बना रहा हूं ... इसलिए मैं इसके साथ बहुत सहज हूं। मैं यह भी समझता हूं कि वर्तमान क्लाइंट-साइड पथ पर वेब का भविष्य जारी रहेगा।

तथापि...

: अगली चुनौती के विभिन्न नियंत्रक चौखटे के रूप में आ रहा किया जा रहा है KnockoutJS , BackboneJS , SproutCore , JavaScriptMVC (सूची पर चला जाता है)।

Additonally, वहाँ कुछ महान AMD Loader उपकरण जैसे की आवश्यकता के लिए UseJS या LabJS आदि हैं। हालाँकि, jQuery में अब क्षमता है defineऔर thenबेक्ड-इन है।

यह मुश्किल है और यह सब का ट्रैक रखने के लिए कठिन हो रही है ...

और अब, मेरा कार्य किसी MVC या MVVM फ्रेमवर्क क्लाइंट-साइड के किसी न किसी रूप का उपयोग करने के लिए एक रणनीतिक-दिशा का मूल्यांकन / निर्णय करने के लिए लगता है ... लेकिन मेरे पास बहुत सारे प्रश्न हैं।

  • ऊपर वर्णित विभिन्न कंट्रोलर-फ्रेमवर्क के साथ JQuery कहां फिट बैठता है?
  • क्या JQuery का उपयोग प्रत्येक के साथ किया जाता है या उनमें से कुछ का अपना ' JQuery -styled संस्करण' बेक किया हुआ है?
  • जैसे उपकरण हैं RequireJS अभी भी जरूरत है, तो आप विभिन्न नियंत्रक-चौखटे ऊपर उल्लेख में से एक को लागू?
  • क्या JQuery में पके हुए defineऔर thenक्षमताएँ अब AMD लोडर को ऊपर बताए गए हैं?
  • कौन सा सबसे मॉड्यूलर लगता है? (नीचे नोट्स देखें)

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

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

अग्रिम में धन्यवाद!

जवाबों:


11

jQuery एक क्रॉस ब्राउज़र सामान्यीकरण उपकरण। यह आपको निम्नलिखित देता है

  • डोम उपयोगिताओं
  • घटना प्रणाली
  • अजाक्स
  • एनिमेशन
  • ES5 उपयोगिताओं
  • कुछ और बात

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

आवश्यकताएँ / यादा / यादा मॉड्यूल लोडर हैं। यदि आप एक मॉड्यूलर एप्लिकेशन लिखना चाहते हैं, तो आपको कुछ मॉड्यूल लोडर की आवश्यकता होती है।

ऊपर वर्णित विभिन्न कंट्रोलर-फ्रेमवर्क के साथ JQuery कहां फिट बैठता है?

जैसा कि उल्लेख किया गया है, jQuery ब्राउज़र को सामान्य करता है। नियंत्रक ढांचे नहीं है। आपको jQuery की आवश्यकता नहीं है लेकिन आपको ब्राउज़र को सामान्य करने के लिए किसी तरह की आवश्यकता है।

क्या JQuery का उपयोग प्रत्येक के साथ किया जाता है या उनमें से कुछ का अपना 'JQuery- स्टाइल वर्जन' बेक किया हुआ है?

बैकबोन / नॉकआउट / JavaScriptMVC में ब्राउज़र सामान्यीकृत बेकिंग नहीं है, इसलिए आपको उसके लिए एक उपकरण की आवश्यकता होती है। मुझे यकीन नहीं है कि SproutCore के बारे में ऐसा लगता है कि इसमें बहुत कुछ है।

यदि आप ऊपर उल्लिखित विभिन्न नियंत्रक-रूपरेखाओं में से किसी एक को लागू करते हैं, तो क्या आवश्यकता के समान उपकरण अभी भी आवश्यक हैं?

यदि आप मॉड्यूलर एप्लिकेशन लिखने के लिए लिखते हैं तो ये केवल आवश्यक हैं। तो बहुत ज्यादा हाँ।

मॉड्यूलर अनुप्रयोगों के तीन स्वाद हैं

  • async को आवश्यकता है जैसेJJ की आवश्यकता लोडर
  • सिंक को modul8 जैसे लोडर की आवश्यकता होती है
  • नामस्थानों का उपयोग करना और बस फाइलों सहित
  • पैकेज जैसे एंडर

क्या परिभाषित और फिर क्षमताओं को बेक्ड-जेकेई में अब एएमडी लोडर के ऊपर उल्लेख किया गया है?

नहीं, jQuery में बेक की गई परिभाषित क्षमता आपको jQuery लपेटे बिना AMD लोडर के साथ इसका उपयोग करने की अनुमति देती है। आपको अभी भी एक एएमडी लोडर की आवश्यकता है। "तब" क्षमता सिर्फ jQuery deferreds की कुछ चीनी है।

कौन सा सबसे मॉड्यूलर लगता है? (नीचे नोट्स देखें)

यह एक विचारणीय प्रश्न है। मेरी निजी राय है कि jQuery सहित ये सभी रूपरेखाएँ फूला हुआ हैं और मॉड्यूलर नहीं हैं।

आप मॉड्यूलर चाहते हैं, अपनी खुद की लाइब्रेरी लिखें, अपनी खुद की आर्किटेक्चर लिखें।

हालाँकि अगर आप बुराइयों को कम करना चाहते हैं तो मैं रीढ़ चुनूंगा क्योंकि यह सरल और छोटी या रीढ़ है जो समान है


धन्यवाद Raynos ... मैं हमेशा एक महान जवाब के लिए आप पर भरोसा कर सकता हूँ!
कैदी जीरो

@ मर्जन मैं किसी अन्य के लिए प्रतीक्षा कर रहा हूं जो किसी भी इनपुट को सबमिट करने की परवाह कर सकता है।
कैदी जीरो 10

@PrisonerZERO: इससे कोई समस्या नहीं है। जैसा कि आप रेन्नोस के उत्तर से खुश लग रहे थे, मेरी टिप्पणी सिर्फ इस मामले में थी कि आप एक उत्तर को स्वीकार करने के बारे में नहीं जानते थे (मैंने आपकी प्रोफ़ाइल की जांच नहीं की थी और आपका प्रतिनिधि आपको यहां एक नया उपयोगकर्ता बताता है)
मार्जन वेनमा

2

मैं योगदानकर्ता के रूप में JavaScriptMVC पर जवाब दूंगा:

ऊपर वर्णित विभिन्न कंट्रोलर-फ्रेमवर्क के साथ JQuery कहां फिट बैठता है?

JavaScriptMVC jQuery पर निर्भर करता है और इसका बड़े पैमाने पर उपयोग करता है।

क्या JQuery का उपयोग प्रत्येक के साथ किया जाता है या उनमें से कुछ का अपना 'JQuery- स्टाइल वर्जन' बेक किया हुआ है?

जावास्क्रिप्ट में jQuery के साथ कोई प्रतिस्पर्धात्मक कार्यक्षमता नहीं है। यह बैकबोन के साथ उतना सच नहीं है, जिसकी अपनी घटना प्रणाली है। लेकिन, रीढ़ या रीढ़ की हड्डी में कुछ भी बहुत कम है।

यदि आप ऊपर उल्लिखित विभिन्न नियंत्रक-रूपरेखाओं में से किसी एक को लागू करते हैं, तो क्या आवश्यकता के समान उपकरण अभी भी आवश्यक हैं?

JavaScriptMVC निर्भरता प्रबंधन प्रणाली -> चोरी के साथ आता है। आप आवश्यकताएँ के साथ JavaScriptMVC का उपयोग कर सकते हैं, लेकिन चोरी वास्तव में बहुत अधिक शक्तिशाली है और उपयोगकर्ता द्वारा डाउनलोड किए गए आकार के बराबर है।

कौन सा सबसे मॉड्यूलर लगता है? (नीचे नोट्स देखें)

यह राय नहीं है। JavaScriptMVC अत्यंत मॉड्यूलर है। आप केवल उसी चीज का उपयोग करें जिसकी आपको आवश्यकता है। बैकबोन या रीढ़ की तुलना में, आप इसका उपयोग एम, वी, या सी भागों स्टैंडअलोन कर सकते हैं। जब एक साथ इकट्ठे होते हैं, तो यह बैकबोन से केवल 1k बड़ा होता है (जब jQuery और अंडरस्कोर का उपयोग करके)। आप आधार घटकों के विभिन्न आकारों को यहाँ देख सकते हैं: https://github.com/jupiterjs/javascriptmvc/ues/26

लेकिन JavaScriptMVC बहुत अधिक शक्तिशाली (सुविधाओं के संदर्भ में) बनाम रीढ़ या रीढ़ है। उदाहरण के लिए, यह टेम्पर्ड इवेंट हैंडलर व्यावहारिक रूप से सभी मेमोरी लीक को रोकता है। यहाँ एक टूलटिप है जो विंडो को क्लिक करने पर खुद को छुपा लेता है:

$.Controller('Tooltip',{
  "{window} click" : function(){
    this.element.remove();
  }
})

यह एमवीसी दृष्टिकोण के साथ बिल्कुल महत्वपूर्ण है जब आपके नियंत्रण मॉडल में परिवर्तन को सुन रहे हैं जैसे:

$.Controller('Todos',{
  "{Todo} created" : function(Todo, ev, createdTodo){

  }
})

नियंत्रक इन सभी बाहरी घटना संचालकों को स्वतः-रहित कर देगा।

सिर्फ MVC भागों की कुछ अन्य ताकत:

  • $ .Class एक बहुत शक्तिशाली वर्ग प्रणाली है
  • $ .View और $ .Model deferreds का समर्थन करता है
  • $ .कंट्रोलर ईवेंट हैंडलर को 'रिबंड' कर सकता है
  • $ .Model संघों, पाने वाले / बसने वालों, चूक, मान्यताओं का समर्थन करता है

अब, JavaScriptMVC केवल MVC भागों (जो jQueryMX उप-परियोजना का हिस्सा है) की तुलना में बहुत अधिक है। यह है:

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

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

यदि आप कुछ बुनियादी विजेट्स को एक साथ जोड़ रहे हैं, तो मैं रीढ़ या रीढ़ की हड्डी को देखूंगा।


"रीढ़ या रीढ़, आप इसका उपयोग कर सकते हैं एम, वी, या सी भागों स्टैंडअलोन।" M, V और C में से प्रत्येक को छोड़कर रीढ़ और रीढ़ की हड्डी जितनी बड़ी है।
रेयनोस

यह सच नहीं है। बैकबोन 5k है इसके साथ अंडरस्कोर निर्भरता है। मुझे यकीन नहीं है कि रीढ़ क्या है। लेकिन यहां ब्रेकडाउन: क्लास: 1k, कंट्रोलर: 1.74k, मॉडल: 2.8k, $ .View :k, $ .String: .5k 8.6k के कुल योग के लिए। यह 3k अधिक है, लेकिन बहुत अधिक उपयोगी विशेषताएं हैं।
जस्टिन मेयर

क्या आप Kendo UI नियंत्रण जैसी किसी चीज के साथ JavaScriptMVC का उपयोग करेंगे? क्या अन्य नियंत्रण?
कैदी ज़ीरो

हां, किसी भी jQuery- आधारित यूआई लाइब्रेरी को बढ़िया काम करना चाहिए (जब तक कि यह घटनाओं के लिए jQuery के इवेंट सिस्टम का उपयोग करता है)।
जस्टिन मेयर 12

मुझे ध्यान देना चाहिए कि बैकबोन jQuery के बजाय Zepato का उपयोग कर सकता है, जिससे यह jQuery के साथ संयुक्त JMVC MVC निर्भरता से बहुत कम हो जाता है। लेकिन, आप jQuery के बिना काफी कम खो देते हैं।
जस्टिन मेयर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.