देशी जावास्क्रिप्ट विकास के क्या लाभ हैं? [बन्द है]


33

यह देखते हुए कि देशी जावास्क्रिप्ट की तुलना में jQuery का विकास कितना सरल है, जो लोगों को पुस्तकालयों जैसे jQuery से पूरी तरह से दूर कर देता है?

क्या ऐसा इसलिए है क्योंकि jQuery की सीमाएँ हैं या यह धीमा है? मेरा मतलब है, अगर देशी जावास्क्रिप्ट की तुलना में jQuery इतना आसान है, तो लोगों को अभी भी शुद्ध जावास्क्रिप्ट का उपयोग करने के लिए क्या कारण हैं?


1
jQuery सिर्फ एक पुस्तकालय है - देशी JS लिखने वाला जो jQuery का उपयोग करता है वह अभी भी मूल JS लिख रहा है। यह पूछने की तरह है, "मूल C ++ विकास के लिए क्या लाभ हैं?" जब आप "बू के बिना C ++ विकास" के बारे में बात कर रहे हैं।
Zach


1
JQuery और अन्य पुराने कामों का मुख्य लक्ष्य अलग-अलग js इंटरफेस के साथ अलग-अलग ब्राउज़रों के शीर्ष पर एक मुखौटा बनाना था (उदाहरण के लिए XMLHttpRequestबनाम ActiveXObject, या addEventListenerबनाम attachEvent, या css selectorsबनाम xpath selectorsबनाम no selector support, आदि ...) हाल के ब्राउज़रों में इनमें से अधिकांश समस्याएं नहीं हैं मौजूद हैं, क्योंकि वे समान मानकों का पालन करते हैं।
inf3rno

जवाबों:


89

चलो कारों के बारे में बात करते हैं।

ओह रुको, हमने पहले ही किया था - उस समय को याद करते हैं जो हम मिले थे, कुछ समय पहले? हमने कारों के बारे में बात की। वास्तव में, आप कारों के विशेषज्ञ थे। आप नवीनतम फॉर्मूला 1 दौड़ के बारे में विस्तार से, सही, गलत और रोमांचक सभी को समझाने में सक्षम थे। आप दिल से लेम्बोर्गिनी के सभी मॉडलों को जानते थे, उनकी कीमत और उपलब्धता सहित। आपको अपने खुद के फेरारी 599 जीटीबी फियोरानो खरीदने का भी विचार था और इसके लिए बचत कर रहे थे (मुझे यकीन है कि स्टेक डिनर ने बहुत मदद नहीं की थी)।

एक महान, उत्साहित आवाज़ में टोयोटा के दोषों की व्याख्या करते हुए, आप अचानक अपनी कुर्सी से कूद गए और हवा में चिल्लाए, अपनी मुट्ठी लहराते हुए: "यह सब लानत है, मैं कारों से संबंधित सभी चीजों पर एक शानदार विशेषज्ञ हूं!" मैं एक कार मैकेनिक बनने जा रहा हूँ! "

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

लेकिन यह कैसे हो सकता है !? आप कारों के बारे में सब कुछ जानते हैं ! सिवाय ... कारों के बारे में सब कुछ। आप बहुत अच्छी तरह से जान सकते हैं कि आपकी सपनों की कार में V12 इंजन है, लेकिन आप नहीं जानते कि वास्तव में इसका क्या मतलब है।

तो तुम एक कार मैकेनिक नहीं हो, वास्तव में - तुम एक कार उत्साही हो। और जब तक आप यह नहीं सीखेंगे कि कार कैसे काम करती है , आप एक उत्साही बने रहेंगे।

अब मैं आपसे पूछता हूं। कैसे $.fn.textकाम करता है ? और किस बारे में $.fn? वे वास्तव में क्या मतलब है? $(something)एक विशाल चीज़ को वापस कैसे करता है जिसमें चीजें शामिल हैं, और वह चीज़ बिल्कुल क्या है? क्या आप उनकी कार्यक्षमता को दोहरा सकते हैं, कम से कम एक सिद्धांत में भी? क्या आप jQuery के बिना सामना कर सकते हैं?

यह कहना कि "देशी जावास्क्रिप्ट कठिन है" सिर्फ ... असत्य है। सबसे पहले और सबसे महत्वपूर्ण, क्योंकि भाषा के रूप में जावास्क्रिप्ट का डोम से कोई लेना-देना नहीं है , जो कि मुख्य रूप से jQuery का सार है। दूसरा क्योंकि एक बार जब आप DOM के बारे में थोड़ा सीख लेते हैं, तो आप पहले से ही सबसे सामान्य क्रॉस-ब्राउज़र बग्स के माध्यम से क्रूज कर सकते हैं। लेकिन बस थोड़ा सा रहस्य - पहली बार में सब कुछ कठिन है। लॉन्ग डिवीजन 5 वीं कक्षा में एक कुतिया थी।

इस उत्तर के लिए दूसरे सादृश्य के रूप में: jQuery जावास्क्रिप्ट-डोम (भाषा जावास्क्रिप्ट नहीं है, बस डोम) की तरह Array.prototype.forEachहै for। यह 99% मामलों के लिए काम करता है। और यह अच्छी तरह से काम करता है। लेकिन उस 1% जो शामिल नहीं है के लिए, आप की जरूरत है कि कैसे उपयोग करने के लिए पता करने के लिए forलूप, अगर केवल व्यावहारिक होने के लिए। यह पूरा उत्तर प्रश्न के "शुद्ध" पक्ष पर आधारित है, न कि तकनीकी पक्ष (पुस्तकालय का आकार, उदाहरण के लिए, और माइकल डोरंट के उत्तर में बताई गई कई अन्य बातों पर)। क्योंकि मैं जावास्क्रिप्ट से प्यार करता हूं और जब लोग बस इसे लापरवाही से "पाह, उन मूर्खतापूर्ण जावास्क्रिप्ट" कहकर फेंक देते हैं और फैंसी सफेद दस्ताने लहराते हैं, तो यह नैतिकता के लिए नीचे गिर जाता है।

यदि आप इस तथ्य को स्वीकार कर सकते हैं कि आप हमेशा एक जावास्क्रिप्ट उत्साही रहेंगे, तो मैं कौन हूं जो आपको रोकूं? लेकिन अगर आप एक जावास्क्रिप्ट प्रोग्रामर होना चाहते हैं, तो आपको पहले कम से कम करने के लिए ज्ञान है के लिए है चुनें jQuery (या किसी अन्य पुस्तकालय) का उपयोग कर और एक पुस्तकालय का उपयोग नहीं के बीच। डोम जानें। इसका उपयोग करना सीखें। अपनी खुद की छोटी सी लाइब्रेरी या सहायक कार्यों का सिर्फ कुछ संग्रह लिखें। और एक बार जब आप DOM के जानकार होते हैं, और आप jQuery - godspeed का उपयोग करना चुनते हैं। उन लोगों के लिए आलस्य को सम्मानित किया जाता है जिन्होंने कड़ी मेहनत की।


15
लंबा विभाजन अभी भी कठिन है!
रेयानोस

13
@anonymousDownvoter प्रार्थना की व्याख्या करें। क्या इसलिए कि आप शाकाहारी हैं? मैं टोफू-बर्गर में स्टेक को बदल सकता हूं, लेकिन ईमानदारी से नहीं कह सकता कि "महान टोफू-बर्गर" जैसी कोई चीज है
ज़ीरक

10
+1 "$ (कुछ) चीजों से युक्त एक विशाल चीज़ कैसे लौटाता है, और यह चीज़ क्या है?" हा!
ThinkingStiff

3
इसके अलावा, @ यह आपराधिक है, क्योंकि इसे कभी भी शुद्ध स्थिति नहीं मिली क्योंकि यह शुद्ध है! @ # $ आईएनजी प्रतिभा।
एरिक रेपेन

5
पोस्ट में "महान स्टीक" एक स्वैच्छिक टाइपो है, इसे संपादित करने का प्रयास न करें। यदि आवश्यक हो, तो इसके बारे में इस मेटा चर्चा को देखें
gnat

12

कारण मुझे पता है:

  1. जब ज़रूरत बेहद कम हो, तो 1 ऑन्कलिक कहें।

  2. जब डाउनलोड गति महत्वपूर्ण है और jQuery लाइब्रेरी बहुत बड़ी है और आपको इसे बदलने के लिए बहुत (कस्टम) कोड नहीं लिखना है।

  3. अन्य तकनीकों के साथ एकीकरण करते समय, कभी-कभी कच्चे जेएस बेहतर होते हैं।

  4. जब एक विरासत प्रणाली (उर्फ 'प्रोडक्शन') पर काम किया जा रहा है, तो पहले से ही स्थापित पैटर्न के साथ js में लिखा गया है।


13
मुझे आश्चर्य है कि कितनी बार # 2 वास्तव में सच हो जाता है। आप संभावित रूप से कैश्ड डाउनलोड करने के लिए एक 92K बचाते हैं, लेकिन आप बहुत अधिक बॉयलरप्लेट जेएस कोड लिखते हैं।
एडम रैकिस

4
मैं उस बारे में नहीं जानता। आप कार्यक्षमता के सबसेट के लिए पूरे पुस्तकालय को शामिल करने के बजाय, जेएस को अपनी आवश्यकता के अनुसार रख सकते हैं ।
रयान किनाल

4
@ रियान काइल - एडम रैकिस के पास एक अच्छा बिंदु है, और यदि आप गूगल के एपीआई का उपयोग जेक्वरी को लोड करने के लिए करते हैं तो आप इसे उसी जगह से लोड कर सकते हैं जहां उपयोगकर्ता ने पहले से ही इसे पुनः प्राप्त कर लिया है।
बेन डीमॉट

मैं # 4 से असहमत हूं। यदि विरासत कोड भयानक है और टीम में हर कोई सहमत है और यह jQuery को जोड़ने और भविष्य के कोड में इसका उपयोग करने के लिए एक अच्छा विचार है।
ThiefMaster

7

jQuery केवल एक फ्रेमवर्क है - जावास्क्रिप्ट में लिखे गए टूल का एक सेट। टूल के उस सेट का उपयोग करके आप अभी भी जावास्क्रिप्ट का उपयोग कर रहे हैं। कुछ लोग jQuery प्रदान करने वाले टूल का उपयोग करके जावास्क्रिप्ट लिखना पसंद करते हैं, कुछ नहीं चुनते हैं, अन्य उपकरण के अन्य सेट चुनते हैं।

कुछ कारण जिन्हें आप jQuery के बिना "शुद्ध" जावास्क्रिप्ट लिखना चाहते हैं:

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

5

jQuery, किसी भी लाइब्रेरी या फ्रेमवर्क के रूप में, बग्स की एक और परत जोड़ता है । मुझे यह पसंद है, लेकिन मैंने एक दिन एक बग की तलाश में खो दिया है जो jQuery कोर में निकला है और मेरा कोड नहीं है (एक दुर्लभ अवसर, लेकिन ऐसा दुर्लभ नहीं)।

इसके अलावा मुझे इसका उपयोग न करने का कोई अन्य कारण नहीं मिलता है:

  • ओवरहेड न्यूनतम है, खासकर यदि आप होस्ट किए गए Google संस्करण के साथ जाते हैं ,
  • यह कम अनुभवी जावास्क्रिप्ट डेवलपर्स को क्लीनर और अधिक कुशल कोड लिखने में मदद करता है,
  • यह ज्यादातर क्रॉस-प्लेटफ़ॉर्म है, जो पुराने ब्राउज़र से निपटने के लिए जीवन रक्षक हो सकता है,
  • प्लगइन्स की विशाल गैलरी मुझे बहुत कम समय में प्रोटोटाइप लिखने में मदद करती है,
  • डोम समझ में आता है,
  • ब्ला ब्ला ब्ला...

लेकिन इसका उपयोग कभी भी जावास्क्रिप्ट ज्ञान के विकल्प के रूप में नहीं किया जाना चाहिए। यदि आपको यह पता नहीं है कि इसे शुद्ध जावास्क्रिप्ट में कैसे किया जाए, तो आप शुरू में एक पुस्तकालय से दूर हो सकते हैं, लेकिन लंबे समय तक आप इसके लिए भुगतान करने जा रहे हैं।

और निश्चित रूप से हम सभी हैं जो काफी सालों से IE6 के साथ नश्वर युद्ध में बंद हैं, और आसानी से एक चमकदार नए खिलौने के पक्ष में हमारे पुराने स्कूल के गुर नहीं जाने देंगे ।


2
आप jQuery plugins का उपयोग करें? उनमें से अधिकांश बुरी तरह से छोटी और बुरे कोड से भरे हुए नहीं हैं?
रेयानोस

@ रेयानोस The huge gallery of plugins help me write prototypes in very short times... बस प्रोटोटाइप, मैं जब संभव हो तो उत्पादन कोड पर उनसे बचता हूं। उत्कृष्ट कोड के साथ कुछ प्लगइन्स हैं , लेकिन आपको उनके लिए बहुत कठिन दिखना होगा ...
yannis

प्रोटोटाइप का आम तौर पर मतलब है "एक फेंक दिया जाना चाहिए था लेकिन अब उत्पादन कोड है"। अगर आप इन्हें थ्रैप्ट प्रोटोटाइप पर इस्तेमाल करते हैं तो ठीक है।
Raynos

@ रेयानोस प्रोटोटाइप केवल थ्रोअवे प्रोटोटाइप के बारे में नहीं है। विकासवादी प्रोटोटाइप वेब विकास की एक मुख्य प्रक्रिया है ... - यह कैसे हुआ, देर से प्रतिक्रिया के लिए: पी
यानिस

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

5

ब्राउज़र वातावरण में आपको क्रॉस ब्राउज़र सामान्यीकरण उपकरण की आवश्यकता होती है। ऐसा उपकरण दो स्वादों में आता है

  • नई वस्तुओं के साथ मेजबान वस्तुओं को लपेटता है जो ब्राउज़रों के समान व्यवहार करते हैं
  • DOM API को कार्यान्वित करने के लिए होस्ट ऑब्जेक्ट का विस्तार करें।

आम तौर पर आप इन उपयोगिताओं को तीन तरीकों में से एक में उपयोग कर सकते हैं

  • जैसे छोटे कार्यों का उपयोग addClassया setTextभर में अपनी कोड कब और कहाँ आप उन्हें जरूरत
  • अपना स्वयं का क्रॉस ब्राउज़र सामान्यकरण पुस्तकालय लिखें
  • किसी मौजूदा का उपयोग करें।

आपको सामान्यीकरण के कुछ तंत्र की आवश्यकता है अन्यथा आपको शून्य क्रॉस ब्राउज़र समर्थन मिलता है।

मौजूदा का उपयोग करने के लिए, यह ठीक है। मैं सिर्फ jQuery का उपयोग नहीं करेंगे। व्यक्तिगत रूप से मैं वर्तमान में अपनी खुद की लाइब्रेरी लिख रहा हूं ( डोम-शिम यह ब्राउजरों को बिना किसी विदेशी प्रोपटी के एपीआई को उजागर किए बिना ठीक कर देता है। यह आपके ब्राउजर्स को एक एकल व्यवहार वाले मानकीकृत ब्राउजर में बदल देता है)।


3

यदि आपको DOM अमूर्त की जरूरत नहीं है, तो क्रॉस-ब्राउज़र और लीगेसी ब्राउज़र समर्थन - आप आसानी से jQuery के बिना जा सकते हैं।

यह वह स्थिति है जब आप ब्राउज़र एक्सटेंशन, ग्रीसीकेम स्क्रिप्ट (कभी-कभी), नंबर-क्रंचिंग सामान, Node.js या अन्य गैर-ब्राउज़र वातावरण के लिए विकसित कर रहे हैं।


2

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

हाल ही में मैं बहुत सारे एनिमेशन या अन्य सीपीयू-गहन कार्यों पर काम कर रहा हूं और अगर मैं jQuery से गुजरता हूं तो कुछ समय कच्चे जावास्क्रिप्ट बहुत अधिक होता है।

एक उदाहरण वह है जहां मैं किसी position: fixedतत्व की अपारदर्शिता को इस बात के संबंध में बदलना चाहता था कि किसी उपयोगकर्ता ने किसी पृष्ठ पर कितनी दूर तक स्क्रॉल किया है। जब मैं इसके लिए jQuery का उपयोग करता था तो प्रभाव बहुत धीमा था, जिससे स्क्रॉलिंग झटकेदार हो गई और फीका प्रभाव बर्बाद हो गया। मैंने सीधे जावास्क्रिप्ट का उपयोग करने के लिए स्विच किया और सब कुछ रेशमी चिकनी था, लेकिन IE <= 8।


2

मुझे अपना जवाब कुछ खुली ईमानदारी के साथ पेश करने की जरूरत है। मुझे jQuery पसंद है। यह मेरे जीवन को व्यापक रूप से आसान बनाता है, और जावास्क्रिप्ट कोड को अधिक घोषणात्मक बनाता है, जो कि मेरा मानना ​​है कि चीजों को काम करना चाहिए।

jQuery कई काम करता है ...

हां आप प्लगइन्स जोड़ सकते हैं
हां आप चयनकर्ताओं का विस्तार कर सकते हैं
हां यह एनीमेशन को सरल बनाता है

लेकिन jQuery सब कुछ नहीं करता है

क्या आपने कभी jQuery के साथ कई विंडो संदर्भों में काम करने की कोशिश की है? jQuery विभिन्न विंडो संदर्भों से निपटने में बेकार है क्योंकि यह उस विंडो से मूल windowऔर documentसंदर्भ को बरकरार रखता है जिसमें इसे बुलाया गया था।

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

* एक नई विंडो में ईमेल की रचना के लिए जीमेल के पॉपआउट के बारे में सोचें, न कि अनचाहा विज्ञापन

जब यह कोड को सरल बनाता है तो इसका उपयोग करें

JQuery का उपयोग करने का समय तब है जब आप अपने कोड को सरल, छोटा, अधिक पठनीय और तेज बना सकते हैं।

JQuery का उपयोग नहीं करने का समय तब होता है जब यह आपके कोड को सरल, छोटा, अधिक पठनीय, या तेज बना देता है। यदि आपको लोड टाइमिंग को ठीक करने की आवश्यकता है, तो आप इवेंट ओवरहेड के कारण jQuery का उपयोग नहीं करना चाहते हैं।


2

जैसा कि आप जानते होंगे, jQuery एक सामान्य-उद्देश्य वाला ढांचा है जो बहुत सारी विधियाँ प्रदान करता है जो हम में से कई अपनी परियोजनाओं में उपयोग नहीं करते हैं। (उनमें से कुछ मैं बिल्कुल भी इस्तेमाल नहीं किया है।)

JQuery या किसी अन्य अच्छी तरह से स्थापित रूपरेखाओं का उपयोग नहीं करने के दो मुख्य कारण हैं।

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

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


0

माइक

मुझे लगता है कि कुछ पुस्तकालयों के उपयोग के खिलाफ लोग कुछ कार्य करने के लिए उस बुनियादी ढांचे / पुस्तकालय समाधान पर निर्भरता के कारण हैं।

लेकिन आइए लंबे समय तक पुस्तकालयों की तरह आने और जाने को याद रखें।

तो शायद यह अस्थायी गुंजाइश है। हो सकता है कि लोग लाइब्रेरी में निवेश करने से हिचकिचाते हों कि बस वहां न हो - या लंबे समय में इसके पीछे उतनी ही गति हो।

खुद? मुझे विशेष रूप से JQuery का उपयोग करने में कोई आपत्ति नहीं है। मैं यह भी कहता हूं कि Box2d.js या three.js और उन्हें बहुत बार गले लगाओगे भले ही अल्पावधि शेल्फ जीवन याद रखें कि उन्हें क्या फल देना है।

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


0

मैं कहूंगा कि मुख्य मुद्दा यह है कि अधिक से अधिक लोगों (विशाल बहुमत?) को यह नहीं पता है कि अब जावास्क्रिप्ट में कैसे कोड किया जाए। यदि jQuery कुछ नहीं कर सकता है, तो वे ऐसा नहीं कर सकते।

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

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

संक्षेप में, यह एक महान ढांचा है, लेकिन सभी के लिए अंत-सभी लोग इसे नहीं बनाते हैं।


2
यदि आपका शेख़ी कम होता है और बारीकियों पर अधिक ध्यान दिया जाता है, तो आपका उत्तर अधिक मजबूत होगा।

यह पोस्ट पढ़ना मुश्किल है (पाठ की दीवार)। क्या आप इसे बेहतर आकार में संपादित करना चाहेंगे ?
gnat

0

मैं दो और कारण जोड़ सकता हूं जिनका उल्लेख नहीं किया गया था:

  1. जब मैं ब्रांड की नई तकनीक चुनता हूं, तो कई बार, मैं उच्च-स्तरीय लोगों के पास जाने से पहले निचले स्तर के निर्माणों के साथ शुरू होता हूं। मैं मुख्य रूप से एक C ++ / C # डेवलपर हूं, लेकिन कुछ समय पहले जब मैंने पहली बार HTML / CSS / जावास्क्रिप्ट के साथ खेलना शुरू किया था, तो मैंने किसी भी ढांचे का उपयोग नहीं करने का फैसला किया क्योंकि मैं पहले तकनीक (यानी, जावास्क्रिप्ट) की समझ प्राप्त करना चाहता था भाषा) जो उन चौखटों के ऊपर बनी हैं।

    • यह कहने के बाद कि, मैंने jQuery की खोज कर ली है और कोड की 1-2 पंक्तियों में jQuery आपके लिए क्या कर सकता है, यह कभी भी वापस नहीं जाना चाहता।
  2. मुझे नहीं पता कि यह कितना सामान्य है, लेकिन मुझे ऐसा लगता है कि बहुत सारे लोग हैं, जब वे अगली रूपरेखा / प्रौद्योगिकी / भाषा देखते हैं, तो उनकी पहली प्रतिक्रिया होती है, "मेरे लिए सीखने के लिए एक और एपीआई नहीं!" उन्हें परवाह नहीं है कि jQuery कितना आसान है, लेकिन वे बस इसे अपने बीच के रास्ते में खड़े होकर अपने "सच्चे और आजमाए हुए" तरीकों का उपयोग करते हुए काम के रूप में देखते हैं। यह उन लोगों की एक ही श्रेणी है जो बूस्ट लाइब्रेरी या एसटीएल में से किसी एक का उपयोग करने से इनकार करते हैं और हर चीज के बारे में सिर्फ मॉलॉक का उपयोग करना जारी रखते हैं । आपने पूछा कि वे jQuery पर शुद्ध जावास्क्रिप्ट क्यों चुनते हैं और वास्तव में उन्होंने कभी भी पिक नहीं बनाया क्योंकि ज्यादातर बार उन्होंने पहली जगह में jQuery का मूल्यांकन करने से इनकार कर दिया और विकास की वर्तमान गति से पूरी तरह से खुश हैं, चाहे वह कितना भी धीमा हो।


1
लोग jQuery के ऊपर शुद्ध जावास्क्रिप्ट चुनते हैं क्योंकि jQuery एक भयानक अमूर्त परत है जो परिगलित नहीं है।
रेयानोस २ Ray

बेशक, यह ब्राउज़रों के बीच मतभेदों को दूर करता है और यह अपने आप में एक बड़ी बात है
कोस

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

... नाखूनों को हथौड़ा करने के लिए भयानक उपकरण क्योंकि संभाल में पर्याप्त वजन नहीं है
DXM

1
आप jQuery की जरूरत नहीं है । ब्राउज़रों के पास इस एपीआई को DOM कहा जाता है जो आपको वह सब कुछ करने की अनुमति देता है जो आप चाहते हैं। पॉलीफ़िल का उपयोग करके क्रॉस ब्राउज़र की समस्याओं को हल किया जा सकता है। jQuery एक औसत दर्जे की लाइब्रेरी है और विरासत ब्राउज़र समर्थन के लिए एक औसत समाधान है।
रेयनोस

-1

jQuery जावास्क्रिप्ट के लिए और में लिखा गया एक पुस्तकालय है। विचार यह है कि यह सभी कठिन / थकाऊ जावास्क्रिप्ट चीजों को सरल बनाता है, इस प्रकार विकास के समय को गति देता है और आपकी स्क्रिप्ट को क्रॉस-ब्राउज़र काम करने की अधिक संभावना बनाता है।

क्या jQuery का उपयोग करने के लिए बेहतर बनाता है:

  • उपवास
  • लाइटवेट जावास्क्रिप्ट पुस्तकालय
  • सीएसएस 3 आज्ञाकारी
  • कई ब्राउज़र का समर्थन करता है।
  • JQuery फ्रेमवर्क एक्स्टेंसिबल है और DOM जोड़तोड़, CSS, Ajax , घटनाओं और एनिमेशन को संभालता है ।

जावास्क्रिप्ट एक भाषा है जबकि jQuery जावास्क्रिप्ट का उपयोग करके लिखी गई एक लाइब्रेरी है।

यहाँ ऐसे कारण हैं जो जावास्क्रिप्ट को jQuery के बजाय उपयोग करने के लिए बेहतर बनाता है:

  1. यह पेज के साथ हर बार पूरे jQuery स्क्रिप्ट लाइब्रेरी को लोड करता है। यह peed / फ़ास्ट क्वेरी प्रोसेसिंग वेबसाइट के लिए कमियां है।
  2. कभी-कभी jQuery फ्रेमवर्क ढह जाता है / दूसरों के ढांचे से टकराव होता है।
  3. यदि आप केवल एक तत्व का चयन करने और परिवर्तन दिखाने के लिए सरल कोड लिख रहे हैं तो देशी जावास्क्रिप्ट बहुत बेहतर है।
  4. यदि ऑपरेशन छोटे हैं और जावास्क्रिप्ट कोड की कुछ पंक्ति के भीतर किए जाते हैं तो jQuery का उपयोग करना अच्छा नहीं है।

इन कारणों के कारण, मुझे jQuery फ्रेमवर्क से बचने के लिए जावास्क्रिप्ट का उपयोग करना पसंद है। ऐसी लाइब्रेरी के आधार पर जावास्क्रिप्ट सीखना बेहतर है ...

यहां तक ​​कि अगर आप उन्हें विस्तारित करना चाहते हैं, तो आपको जावास्क्रिप्ट में कोड लिखना होगा। जो एक बड़ी बात भी है। डेवलपर्स इन पुस्तकालयों पर निर्भर हो जाते हैं, इसलिए परियोजनाओं पर नियंत्रण रखने के लिए, जावास्क्रिप्ट फ्रेमवर्क का उपयोग करने से बेहतर है।


1
"बहुत अच्छी तरह से डोम हेरफेर संभालती है" योग्य क्या?
इनकॉग्निटो

धन्यवाद @Incognito मुझे इस बारे में बताने के लिए .. लेकिन अन्य पुस्तकालयों की तुलना में बहुत बेहतर है। keyframesandcode.com/resources/javascript/deconstructed
निरंजन सिंह

1
लिंक बिल्कुल गलत है। sizzle के माध्यम से psd-css चयनकर्ताओं का समर्थन करने वाले jQuery का DOM से कोई लेना देना नहीं है।
गुप्त

अच्छा यह ठीक है .. यहां तक ​​कि मैंने आपसे इस सामान के बारे में सीखा है .. क्या आप मुझे इन सामानों के बारे में कोई लिंक या जानकारी दे सकते हैं .. मैंने जवाब अपडेट कर दिया है ..
निरंजन सिंह

yuiblog.com/blog/2006/10/20/video-crockford-domtheory एक अच्छी शुरुआत है, फिर डोम पर w3c कल्पना पढ़ें।
गुप्त

-4

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.