Google बंद लाइब्रेरी jQuery पर क्या प्रदान करता है? [बन्द है]


190

मानते हुए

  • व्यावसायिक पृष्ठभूमि
  • सामुदायिक समर्थन
  • उपलब्ध एक्सटेंशन
  • सुविधाओं का डिफ़ॉल्ट सेट
  • उपयोग की सादगी
  • और विश्वसनीयता

आप एक से दूसरे को क्यों पसंद करते हैं?


1
मुझे लगता है कि यह कहना मुश्किल होगा कि एक को दूसरे पर क्यों पसंद किया जाता है जब तक कि लोगों को अनुप्रयोगों के साथ प्रयोग करने के लिए नहीं मिलता है और देखें कि बंद होने की सीमा क्या है।
जेम्स ब्लैक

3
कुछ वाक्यविन्यास तुलना यहाँ: derekslager.com/blog/posts/2010/06/…
user194743

4
यह लेख निर्णय लेने में भी मदद कर सकता है। मुख्य सबक: “बंद होना एक पारिस्थितिकी तंत्र है। यह jQuery की तरह नहीं है जहाँ आप इसे इधर-उधर इस्तेमाल करते हैं और DOM को आसानी से एक्सेस या मैनिप्यूट करते हैं। यदि आप वास्तव में क्लोजर का उपयोग करना चाहते हैं, तो आपको वास्तव में इसका उपयोग करने के लिए एक प्रतिबद्धता बनानी होगी। "
दान अब्रामोव

2019 क्या है गूगल क्लोजर? : D
badReiko

जवाबों:


176

मैं अपनी जानकारी जोड़ने का प्रयास करूँगा।

एक और जेएस परिवाद से अधिक

जैसा कि मैं इसे समझता हूं, Google क्लोजर न केवल एक और जेएस लाइब्रेरी है, बल्कि यह टूल्स का एक सेट है जो आपको अपने जेएस कोड को ऑप्टिमाइज़ करने की अनुमति देगा। JQuery के साथ काम करने से आपको अच्छे उपकरण और हल्के पुस्तकालय मिलते हैं, लेकिन यह आपके स्वयं के कोड को छोटा नहीं करता है। बंद संकलक होगा। बंद निरीक्षक भी उपयोगी हो सकता है कभी कभी न्यूनतम किया कोड के रूप में मूल की जगह किसी दूसरे व्यवहार है, और डिबग करने के लिए एक दर्द है। यह फायरबग और समर्थन इकाई परीक्षणों के साथ एकीकृत होता है , जो आजकल दोनों डेवलपर्स के सबसे अच्छे दोस्त हैं।

प्रलेखन

मुझे लगता है कि किसी भी नए पुस्तकालय बनाम एक अच्छी तरह से स्थापित वीएस के रूप में, यह jQuery के एक्सटेंशन और ट्यूटोरियल की उपलब्धता की कमी होगी। हालांकि, Google द्वारा धकेले जाने से यह सुनिश्चित होना चाहिए कि समर्थन और विश्वसनीयता दोनों बहुत अच्छे होंगे। वर्तमान प्रलेखन और ट्यूटोरियल दोनों बहुत अच्छे लगते हैं।

विशेषताएं

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

सुविधाओं को अधिक बारीकी से देखने के बाद, ऐसा लगता है कि यह jQuery के रूप में मौजूदा पुस्तकालयों की तुलना में वेब-अनुप्रयोग विकास के लिए एक कदम आगे हो सकता है। यह अनुमान लगाता है कि यह Google पर आंतरिक विकास को लाभ देता है, लेकिन ऑनलाइन राज्य का पता लगाने ( goog.events.OnlineHandler ) जैसी चीजें , ब्राउज़र इतिहास में AJAX अनुरोधों और जेएस कार्यों का आसान एकीकरण ( goog.History देखें ), या महान विगेट्स के दिग्गज। वे प्रदान करते हैं ( goog.ui पैकेज देखें ) हम सभी को और भी भयानक वेबप्स बनाने में मदद कर सकता है;)

यह टेम्पलेट सुविधाओं के साथ आता है जो जावा के साथ एकीकृत होता है (जिन्होंने जीडब्ल्यूटी कहा था ?), इसलिए यह क्लोजर के लिए एक और प्लस भी हो सकता है।

उपयोग में आसानी

अंत में, यह उपयोग करने के लिए बहुत आसान लग रहा है। कम $ jQuery फ़ंक्शन की तुलना में सिंटैक्स थोड़ा अधिक हो सकता है, लेकिन आईडीई और ऑटो-पूरा होने के साथ, यह एक वास्तविक समस्या नहीं है। इसके अलावा, मैं कहूंगा कि हम Google से आने वाले ग्रहण की तरह आईडीई में एक अच्छे एकीकरण की उम्मीद कर सकते हैं।

संपादित करें: अनुरोध के रूप में, मुझे GWT संदर्भ के बारे में कुछ शब्द कहने दें। Google वेब टूलकिट एक जावा पुस्तकालय है जो AJAX- सक्षम वेब इंटरफेस बनाने की अनुमति देता है और जो आवश्यक जावास्क्रिप्ट कोड उत्पन्न (और अनुकूलन) करता है। जैसा कि Google क्लोजर उन टेम्प्लेट्स को बनाने की अनुमति देता है जो क्लाइंट- और सर्वर-साइड (जावास्क्रिप्ट और जावा का उपयोग करके) दोनों का उपयोग कर सकते हैं, मेरा अनुमान है कि यह जल्द ही संयुक्त रूप से उपयोग करना संभव होगा (यदि यह पहले से ही मामला नहीं है)।


5
विस्तृत और सार्थक उत्तर, धन्यवाद। क्या आप बता सकते हैं कि GWT का क्या मतलब है? मुझे डर है कि मुझे वह नहीं मिला।
प्रेस्टा

1
मुझे लगता है कि आपको अपने "अधिक से अधिक" अनुभाग में टेम्पलेट लाइब्रेरी (सोया) का भी उल्लेख करना चाहिए। एक ही टेम्पलेट फ़ाइल का उपयोग सर्वर (जावा) पक्ष और क्लाइंट साइड दोनों में किया जा सकता है। वास्तव में अच्छा कार्यान्वयन IMO। इसका मतलब है कि हम केवल JSON को AJAX प्रश्नों में HTML भेजने के बजाय नीचे भेज सकते हैं - बैंडविड्थ बचाता है।
फ्रैंक क्रुएगर

1
मैं तो बस बंद के खिलाफ एक आलोचक की खोज की, लेकिन शायद यह सिर्फ है FUD: sitepoint.com/blogs/2009/11/12/...
nalply

7
समालोचक FUD नहीं है, और लिंक के लिए धन्यवाद। समालोचना इस बात पर केंद्रित है कि कैसे जावास्क्रिप्ट कोड हर जगह इष्टतम नहीं है। यह मान्य हो सकता है, लेकिन यह बड़े बिंदु को याद करता है। जैसा कि मैं इसे समझता हूं, क्लोजर वास्तव में जटिल जेएस अनुप्रयोगों (जीमेल के पैमाने पर) को लक्षित करता है, और इसके कुछ परिणाम हैं - जैसे कि हर पंक्ति इष्टतम नहीं है क्योंकि सब कुछ एक ही शानदार कोडर द्वारा नहीं लिखा गया है। लेकिन इसके विपरीत यह एक सॉफ्टवेयर इंजीनियरिंग ढांचे के रूप में और बढ़ सकता है।
पीटर एस मैग्नसन

3
@nalpy जैसा कि टिप्पणियों ने सुझाव दिया है, इस लेख ने यह उल्लेख नहीं किया है कि थ्योरी एक कंपाइलर (मिनिफ़ायर नहीं) को गॉट करती है जो इन कोडिंग मुद्दों को अनुकूलित कर सकती है।
चींटी

30

एपीआई पर अपने संक्षिप्त रूप में मुझे लगता है कि हड़ताली होने के लिए jQuery और क्लोजर के बीच अंतर है।

jQuery मूल रूप से क्रॉस-ब्राउज़र तरीके से कई लगातार संचालन करने का एक सरल तरीका है।

क्लोजर एक फ्रेमवर्क है जो बहुत नया है, इसमें वे <canvas>टैग का उपयोग करने के लिए एक क्रॉस-ब्राउज़र तरीका प्रदान करते हैं , उदाहरण के लिए, और उन्होंने कई अन्य ईवेंट जोड़े हैं।

इसलिए, यह जो हम आम तौर पर जावास्क्रिप्ट के साथ करते हैं उस पर जोड़ रहे हैं, वे कई ऑपरेशन ले रहे हैं जो लोग करना चाहते हैं और उन्हें एपीआई में डाल रहे हैं।

उदाहरण के लिए, उनके पास यह बताने के लिए एक घटना है कि क्या ऑनलाइन राज्य बदल गया है। तो आप बता सकते हैं कि क्या सिस्टम ऑनलाइन है।

उनके पास जावास्क्रिप्ट फ़ंक्शन हैं जो Google गियर्स जैसे टूल का उपयोग करते हैं, जो इस तथ्य के साथ जारी है कि उन्होंने जावास्क्रिप्ट के साथ क्या किया जा सकता है।

सभी परिवर्तनों को पचाने में मुझे कुछ दिन लगेंगे, लेकिन मैं देख सकता हूं कि इससे वेब अनुप्रयोगों पर बड़ा प्रभाव पड़ सकता है जिन्हें विकसित किया जा सकता है।


25

क्लोजर लाइब्रेरी का सबसे बड़ा फायदा यह है कि इसे क्लोजर कंपाइलर के लिए डिज़ाइन किया गया है। यह जावास्क्रिप्ट विकास के लिए पूरी तरह से नई संभावनाओं को खोलता है ...

संकलक में कई शांत विशेषताएं हैं:

  • यह पठनीय जावास्क्रिप्ट को संपीड़ित मशीन-पठनीय जावास्क्रिप्ट में संकलित करता है - इसमें "उन्नत" मोड में सबसे अच्छा संपीड़न अनुपात है।
  • JSDoc टैग के साथ कोड का दस्तावेज़ीकरण महत्वपूर्ण है: संकलक इसे पढ़ता है और आपको प्रलेखन में टाइपोस के लिए चेतावनी के दौरान चेतावनी मिलती है, एक @constructor का गलत उपयोग, एक गलत प्रकार का चर , एक क्षेत्र का दुरुपयोग @ सहायता और @protected पर एनोटेट किया गया, आदि।
  • यदि आप एक पुन: प्रयोज्य जावास्क्रिप्ट पुस्तकालय, जैसे कि ओपनलाइयर या गूगल मैप्स लिखते हैं, तो आप औपचारिक रूप से अपने सार्वजनिक एपीआई को निर्यात करते हैं - और कंपाइलर आपके आंतरिक कोड का अनुकूलन करता है।
  • अंत अनुप्रयोगों को पुस्तकालय के साथ मिलकर संकलित किया जा सकता है - और फिर पुस्तकालय के अप्रयुक्त भागों को उत्पादित कोड से हटा दिया जाता है। आश्रितों को संकलक द्वारा स्वचालित रूप से हल किया जाता है।
  • संकलक अवांछित कार्यक्षमता को दूर करने के लिए स्थिरांक को स्वीकार करता है - यह केवल विशेष ब्राउज़र जैसे कि मोबाइल वेबिट के लिए संकलन की अनुमति देता है, केवल एक क्विरक्स मोड या सख्त मोड के लिए, IE6 के समर्थन के बिना संकलन आदि।
  • सोर्स कोड के संकलित संस्करण के लिए भी फायरबग के साथ डिबगिंग संभव है।
  • कंपाइलर डायनेमिक रूप से लोड करने योग्य मॉड्यूल की पीढ़ी का समर्थन करता है, जो अंतिम एप्लिकेशन को लोड करने में काफी तेजी ला सकता है, क्योंकि उन्नत कार्यक्षमता के लिए कोड केवल तभी लोड किया जा सकता है जब यह आवश्यक हो।

जानकारी के लिए यहाँ देखें: http://blog.klokantech.com/2010/12/closure-compiler-for-openlayers-3x.html


20

संपादित करें : इस YouTube वीडियो पर एक नज़र डालें, यह Google बंद के बारे में कुछ सवालों के बेहतर जवाब दे सकता है।

संभवतः गूगल क्लोजर के बारे में जानकारी के सबसे अच्छे स्रोत प्रोजेक्ट चर्चा समूह , विकी, डॉक्स पेज, डेमो और माइकल बोलिन द्वारा अभी तक अधूरी किताब है जो अब सफारी बुक्स साइट से उपलब्ध है।

एक बात जो मैं अभी बता सकता हूं - closureबनाम के लिए एक स्टेटर लर्निंग कर्व है jQueryलेकिन लाइब्रेरी की विशालता, स्पष्ट संगठन और कंपाइलर और टेंपलेटिंग टूल के साथ एक साथ उपयोग करने के लाभ के कारण यह अच्छी तरह से इसके लायक हो सकता है।

closureमाइकल बोलिन के अनुसार, उस संबंध में पुस्तकालय अधिक पसंद dojoहै jQuery, और कुछ अवधारणाओं को उधार लिया dojoगया था।

google क्लोजर कंपाइलर JSDocप्रलेखन प्रणाली का उपयोग करता है जो एक साथ (यदि प्रोग्रामर द्वारा सही तरीके से बनाया गया है) प्रलेखन प्रदान करता है और संकलन समय पर कई त्रुटियों को पकड़ने में सक्षम बनाता है।

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

लाइब्रेरी quirks मोड में चलने वाले ब्राउज़र का समर्थन करती है ताकि स्क्रिप्ट को "quirky" html का उपयोग करके अन्य साइटों द्वारा एम्बेड किया जा सके

पुस्तकालय के साथ काम करता है (लेकिन निर्भर नहीं करता है) एक जावास्क्रिप्ट टेंपलेटिंग सिस्टम कहा जाता है soyजो सामग्री के साथ दस्तावेजों को भरने को सरल करता है।

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

closureपुस्तकालय डॉट-सीमांकित नामस्थानों पर अधिक निर्भर करता है Java- जैसे एक बहुत मजबूत संगठनात्मक विशेषता।

ऐसे नामस्थानों का उपयोग करने से अप्रयुक्त कोड में ओवरहेड हो जाएगा, लेकिन संकलित कोड में उन चीजों को लघु चर नामों से बदल दिया जाता है।


1
मैं कुछ और खोज रहा था और यहीं समाप्त हो गया, लेकिन यह जानकर अच्छा लगा कि like jQuery google closure allows traversing dom structure with the string-based queries using a dedicated component of the library.क्या आप मुझे इससे संबंधित कुछ दस्तावेज़ीकरण से जोड़ सकते हैं?
इस्माइल

@ आईआईडी: मेरा मानना ​​है कि वह इस बारे में बात करता है goog.dom.DomHelper, लेकिन मैं व्यक्तिगत रूप से jQuery के बराबर एक क्वेरी फ़ंक्शन नहीं देखता। @ विदेश: क्या आप हमें अधिक जानकारी दे सकते हैं?
पूर्वाह्न

@ आईसिड: यह कार्यक्षमता goog.dom.query द्वारा प्रदान की गई है , जो कि goog.dom नामस्थान के साथ-साथ बाकी दस्तावेज़ भी नहीं है।
bkirkbri

8

मैंने अभी Google बंद के बारे में एक बहुत ही बढ़िया लेख पोस्ट किया है जो इस सवाल का जवाब देता है

... बंद करो नियम! ^ _ ^


4
JQuery की तुलना में अच्छी बात है: "[...] jQuery वास्तव में अच्छी तरह से काम करता है और बिना किसी प्रयास और तेजी के साथ संभव महान चीजें बनाता है, इसलिए क्लोजर का" वादा "बेहतर एल्गोरिदम की पेशकश करना नहीं है, बल्कि वास्तव में बेहतर है। जावास्क्रिप्ट अनुप्रयोगों को तैनात करने का संगठित और बनाए रखने योग्य तरीका [...] बंद करने में कोडिंग का अर्थ है, ऑब्जेक्ट ओरिएंटेड सिद्धांतों को ध्यान में रखते हुए, कई जेएस फाइलें बनाना, प्रत्येक एकल वर्ग का प्रतिनिधित्व करना, एप्लिकेशन आर्किटेक्चर को पैकेज में व्यवस्थित करना और अंत में प्रदान किए गए टूल का उपयोग करके इसे तैनात करना। एक एकल, संपीड़ित और सुरक्षित जावास्क्रिप्ट फ़ाइल प्राप्त कर रहा है [...] "
एलेक्स

7

शायद मुझे jQuery नहीं मिल रहा है, लेकिन मैंने वहां एक वास्तविक UI विजेट संग्रह नहीं देखा है (वहाँ प्लगइन्स हैं, हाँ, लेकिन आप कभी नहीं जानते कि वे कितने अच्छी तरह से परीक्षण किए गए हैं और अक्सर कोई स्पष्ट विजेता नहीं होता है और / या प्लगइन का अभाव होता है प्रलेखन)।

अन्य चीजों के बीच क्लोजर है, एक विजेट संग्रह (डेमो टैब देखें), जिसमें जीमेल में उपयोग किए गए , इमेजलेस बटन शामिल हैं

आम तौर पर, रिलीज के हिस्से के रूप में इसे अधिक कार्यक्षमता लागू किया गया है। यह एक बड़ी बात नहीं हो सकती है, लेकिन मैं jQuery प्लगइन्स के समुद्र से परेशान हो जाता हूं, जब मैं एक अजाक्स इतिहास मॉड्यूल या स्वत: पूर्ण के रूप में सरल कुछ ढूंढ रहा हूं।

कुल मिलाकर यह एक विशाल पुस्तकालय है + औजारों का सेट और मैं इससे परिचित हो जाऊंगा कि क्या उपलब्ध है।



1
हाँ ठीक है, साइट से देखते हुए यह 6 विगेट्स है: अकॉर्डियन डेटिकर डायलॉग प्रोग्रेसबार स्लाइडर टैब्स
निकोले

3
मैंने jQueryUI का उपयोग किया है और मुझे लगा कि यह बहुत कमजोर था। यह शायद ही विकास में लगता है। जब आखिरी बार एक नया विजेट जोड़ा गया था। यह आधिकारिक विजेट्स संग्रह हो सकता है, लेकिन jQuery के साथ उपयोग करने के लिए विजेट की तलाश करने वाला कोई भी व्यक्ति तृतीय-पक्ष के विजेट के लिए सिर्फ googling से बेहतर है।
नोसरेडना

2
jQueryUI सिर्फ जावास्क्रिप्ट विजेट्स का एक सेट नहीं है, इसमें एक शानदार सीएसएस फ्रेमवर्क भी है। यह CRUD / व्यवस्थापक पृष्ठों को स्टाइल करने में मेरे लिए एक बढ़िया उपकरण है। प्लस उन क्लोजर "विजेट्स" में से कई jQuery में 1-2 लाइनर हैं, इसके लिए एक प्लगइन लिखने के लायक भी नहीं है।
जैस रिया

2
JQuery की अपील पूर्व-निर्मित विगेट्स नहीं है। यह रिकॉर्ड समय में अपने स्वयं के कस्टम विजेट बना रहा है। मैं शायद ही कभी यूआई सहित प्लग-इन को छूता हूं।
एरिक रेपेने

1

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

संपादित करें:

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

दूसरी ओर JQuery, एक आसानी से संशोधित सोनिक पेचकश से अधिक है।


1
मैं क्लोजर के जावा संस्करण के बारे में अधिक जानना चाहता हूं। क्या आपके पास इसके लिए लिंक है। धन्यवाद
Yazz.com

देखो 'विडंबना टैग।' आपको इसका जवाब मिल जाएगा।
एरिक रेपेने

0

Google क्लोजर लाइब्रेरी आपको अपने जावास्क्रिप्ट को संकलित और अनुकूलित करने की अनुमति देता है। यह jQuery की तरह एक पुस्तकालय नहीं है। jQuery कुछ ऐसा है जो आपको ऐसे फ़ंक्शन प्रदान करता है जो आपको अपनी स्वयं की जावास्क्रिप्ट लिखने की अनुमति देता है।

Google क्लोजर आपको इंटरनेट पर तेजी से वितरण के लिए अनुमति देने के लिए अपने स्वयं के जावास्क्रिप्ट कोड को कम करने में मदद करेगा।

लंबी कहानी, गूगल क्लोजर एक उपकरण है जबकि jQuery प्रोटोटाइप के समान एक पुस्तकालय है।


6
यह बिल्कुल सच नहीं है। Google क्लोजर भी अपनी खुद की लाइब्रेरी के साथ आता है जो कि jQuery के समान है और जो आपको अपना कोड लिखने के लिए फ़ंक्शन और यूटिलिटीज प्रदान करती है: code.google.com/closure/library/docs/tutorial.html
Wookai

2
आह अच्छा! मुझे सही करने के लिए धन्यवाद!
टेरेनो

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