शुद्ध जावास्क्रिप्ट चौखटे पर GWT जैसे औजारों के क्या फायदे हैं?


11

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

जावास्क्रिप्ट टूलकिट की तुलना में, GWT प्रकृति और उपयोग के द्वारा अलग-थलग पड़ सकता है, और सामान्य रूप से जटिल भी सरल काम कर सकता है, आप जावास्क्रिप्ट का उपयोग करके सीधे ठीक-ठीक नियंत्रण के अधिकांश भाग को ले लेंगे।

एक वेब-डेवलपर जीडब्ल्यूटी जैसे उपकरण का उपयोग करना क्यों पसंद करेगा, जो शुद्ध जावास्क्रिप्ट और जावास्क्रिप्ट फ्रेमवर्क और टूलकिट के बजाय मूल रूप से वेब के लिए लक्षित भाषा का उपयोग नहीं करता है?

क्या यह औसत रूप से बेहतर है, और किन मानदंडों पर आधारित है?

जवाबों:


27

बैटरियों में शामिल हैं

जावा का टूलिंग

यह सिर्फ भयानक है:

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

स्टेटिक टाइपिंग

यह कीड़े को जल्दी पकड़ता है। (Google क्लोजर पता चलता है कि जावास्क्रिप्ट दुनिया में डेवलपर को रखते समय थोड़ा सा, यदि आप चाहें तो)।

अनुकूलित जावास्क्रिप्ट

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

आर्किटेक्चर

यह बड़े अनुप्रयोगों के लिए चिंताओं का एक अच्छा अलगाव प्रदान करता है, सभ्य एमवीसी या एमवीपी आर्किटेक्चर के साथ पहले से ही आपकी उंगली-युक्तियों में पूर्व-बेक किया हुआ है।

डिसेंट लाइब्रेरी

GWT दिलचस्प बंडल प्रदान करता है, और यह गतिशील बंडल लोडिंग के साथ I18N- सक्षम अनुप्रयोगों के निर्माण के लिए आसान (अच्छी तरह से आसान) बनाता है।

इकाई का परीक्षण

ग्रहण आईडीई के भीतर और कमांड-लाइन से JUnit का उपयोग करना। यह मेरे पहले बिंदु से संबंधित है। आप बहुत अच्छी तरह से एक GWT प्रोजेक्ट पर जावा के कुछ कोड क्वालिटी टूल्स का उपयोग कर सकते हैं (सोर्स चेक के लिए, बायटेकोड चेक नहीं, क्योंकि कोई भी नहीं है)।

यह सब आपके बारे में है!!

GWT हर किसी के लिए नहीं है। यह कुछ लोगों को अधिक उत्पादक बनाता है और गैर-जेएस डेवलपर्स के लिए एक अच्छा उपकरण देता है जो बिना किसी स्पर्श (बहुत अधिक) जावास्क्रिप्ट के बिना गतिशील फ्रंट-एंड के साथ पेशेवर वेब-एप्लिकेशन का निर्माण करता है। लेकिन अगर यह आपके लिए काम नहीं करता है, तो बस कुछ और उपयोग करें।

यदि आप सबसे ऊपर चाहते हैं, लेकिन आप सिर्फ जावा नहीं चाहते हैं, तो शायद Google बंद , या Dojo टूलकिट को देखें

उस समय एक अच्छा विचार था: इतिहास मामलों !!

जावास्क्रिप्ट दुनिया (और सामान्य रूप से वेब फ्रंट-एंड टेक्नोलॉजी) इन दिनों बेहद सक्रिय है, इसलिए चीजें ऊपर दिख रही हैं। लेकिन कुछ साल पहले, चीजें इतनी उज्ज्वल नहीं थीं। LESS / SASS उतना लोकप्रिय नहीं था, jQuery अभी तक डी-फैक्ट्री जेएस लाइब्रेरी नहीं था, जावास्क्रिप्ट लाइब्रेरीज़ को हर दूसरे हफ़्ते नहीं चलाया जाता था, और टूलिंग सामान्य रूप से उतना महान नहीं था।

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

तब से, अन्य लोग प्रकट हुए हैं (कॉफ़ीस्क्रिप्ट मन में आता है, डार्ट अपने रास्ते पर है, लेकिन बड़े जावास्क्रिप्ट फ्रेमवर्क भी हैं, नोड-जेएस और अन्य लोगों के साथ सर्वर-साइड जेएस की क्रांति, और जावास्क्रिप्ट के लिए एक मजबूत वापसी के रूप में "अच्छा पर्याप्त" न केवल ग्राहक-पक्ष पर, बल्कि आपके व्यवसाय के अन्य हिस्सों में भी इस्तेमाल की जाने वाली भाषा।


अतिरिक्त नोट्स

Regard के साथ अपने मूल (अब संपादित) Firebug के उपयोग के बारे में प्रश्न

आप GWT कोड को Firebug के साथ डिबग कर सकते हैं, लेकिन आदर्श रूप से आप इसे सीधे ग्रहण IDE के डीबगर से डिबग करेंगे, जो अब लाइव कोड डीबगिंग समर्थन प्रदान करता है।

हालांकि, फायरबग यह अभी भी प्रयोग करने योग्य है, हालांकि आपको यह ध्यान रखना होगा कि GWT अनुकूलित और संपीड़ित जावास्क्रिप्ट उत्पन्न करता है, जो कि डिबग करना आसान नहीं है।

Regard के साथ अपने मूल (अब संपादित) CSS के बारे में प्रश्न

हां, आपको अभी भी खुद को सीएसएस कोड लिखने की ज़रूरत है। आप अपने GWT प्रोजेक्ट को अन्य टूल्स (जैसे SASS) के साथ कम या ज्यादा आसानी से जोड़ सकते हैं।

इट इज जस्ट ए टूल!

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

संभवतः , जावा और जावास्क्रिप्ट को अमूर्त स्तरों के संदर्भ में तुलनीय माना जा सकता है। हालांकि, जावा कुछ फायदे (ऊपर विस्तृत) के साथ आता है, इसलिए मौजूदा टूल के लाभों को फिर से लिखने की आवश्यकता के बिना लाभ में है। Google के डेवलपर्स के पास मौजूदा जावा-उन्मुख टूल का पुन: उपयोग करना संभव बनाने का चतुर विचार था, लेकिन वास्तव में जावास्क्रिप्ट अनुप्रयोगों का विकास हुआ।

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


आगे की पढाई:


"स्पष्ट रूप से, जावा और जावास्क्रिप्ट को अभिव्यक्ति के संदर्भ में तुलनीय माना जा सकता है।" मज़ाक? जावा में समतुल्य कार्यक्षमता लगभग 5x लंबी है।
केविन क्लाइन

@kevincline: सही है, मेरा मतलब स्पष्टता लिखना नहीं था, मेरा मतलब था कि यह अमूर्त स्तरों का है। इसे जगह देने के लिए धन्यवाद (यह
2AM है

6
@kevincline: इसके अलावा मैंने "तर्कपूर्ण" कहा था, और किसी भाषा या किसी अन्य की
कट्टर कट्टरता से

1
@ हलीम की वस्तुओं के अलावा, मैं जावास्क्रिप्ट के प्रोटोटाइप-आधारित OO को जावा जैसे क्लास-आधारित सिस्टम से आने वाले किसी व्यक्ति के लिए थोड़ा अजीब हो सकता हूं। दृष्टिकोण की संगति अक्सर उपयोगी होती है।
मैथ्यू फ्लिन

@MatthewFlynn: और इसके विपरीत: यही कारण है कि शुद्ध जेएस डेवलपर्स निश्चित रूप से एक कठिन समय जीडब्ल्यूटी बैंड-वैगन पर प्राप्त कर रहे हैं, या अधिक भारी वजन वाले फ्रेमवर्क का उपयोग कर रहे हैं जो क्लास-आधारित ओडिटी प्रतिमान को कम या ज्यादा दोहराते हैं।
4

6

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

डोम का पेड़

जबकि जावास्क्रिप्ट प्रदर्शन बेहतर हो सकता है, प्रदान की गई DOM ट्री अक्सर अनावश्यक रूप से जटिल होती है। उदाहरण के लिए, ट्री कार्यान्वयन प्रत्येक व्यक्तिगत आइटम के लिए <तालिका> सहित 13 + DOM तत्वों का उपयोग करता है। बड़े पेड़ों (लगभग 10000 आइटम) का उपयोग करके केवल ब्राउज़र को जमा देता है। एक शुद्ध जावास्क्रिप्ट / एचटीएमएल / सीएसएस पेड़ आसानी से वस्तुओं की एक ही राशि को संभालने में सक्षम था।

विकास

शुद्ध जावास्क्रिप्ट / HTML / CSS स्रोत के संशोधित-प्रयास चक्र को पीटा नहीं जा सकता है। आप बस अपनी सोर्स फाइल को सेव करें और ब्राउजर में पेज को रिफ्रेश करें। यह उत्पादकता का एक महत्वपूर्ण कारक है और GWT कोड सर्वर का उपयोग करके भी प्रतिस्पर्धा नहीं कर सकता है।

Chrome या Firebug के डीबगर के साथ JavaScript डीबग करना बिलकुल आसान और आनंददायक है।

हैमर विशेषज्ञ

सब कुछ के लिए जावा का उपयोग करने का विचार डेवलपर्स के लिए है जो "हथौड़ा विशेषज्ञ" हैं। वे अपने हथौड़ा के स्वामी हैं इसलिए सब कुछ एक कील है। मुझे लगता है कि यह दृष्टिकोण बहुत गलत है। GWT का उपयोग करने के लिए CSS और HTML का ज्ञान भी आवश्यक है। इसके बिना GWT डेवलपर्स अक्सर ऐसी समस्याओं से टकराते हैं, जिन्हें हल करना लगभग असंभव है, जबकि HTML / CSS अनुभव वाला कोई व्यक्ति समाधान के साथ आ सकता है। यदि डेवलपर्स को इस क्षमता की आवश्यकता है, तो वे HTML में विकसित करने के साथ इसे आसान बना सकते हैं।

मेरी राय है कि GWT द्वारा प्रदान किए गए अधिकांश लाभ कम से कम संदिग्ध हैं, जबकि शुद्ध जावास्क्रिप्ट / HTML / CSS में विकसित होने की तुलना में नुकसान अधिक गंभीर हैं।


2

यह औसत रूप से बेहतर नहीं है।
हर रोज इस्तेमाल के लिए, jQuery , AmpleSDK , या कुछ HTML5 पॉलीफ़िल पर विचार करें ।

GWT के पास बहुत अधिक ओवरहेड है: वास्तविक और वैचारिक।

यदि आपके पास वेब ऐप को पोर्ट करने के लिए जावा ऐप या कुछ सर्वर साइड जावा कोड हो तो उपयोगी हो सकता है ।


आप क्लोजुरस्क्रिप्ट का मतलब है। क्लोजर स्वयं एक LISP- आधारित भाषा है जो JVM को लक्षित करता है। क्लोजुरस्क्रिप्ट एक जेएस कोड का उत्पादन करने वाला है।
हेलेम्

हां, वैसे भी बाहर संपादित किया था। इसे सरल रखना।
ZJR

2

GWT के उपयोग के कुछ फ़ायदे जो मुझे लगता है कि (अधिक विवरण मेरे ब्लॉग को पढ़ें http://www.pandurangpatil.com/2012/09/benefits-of-using-gwt.html )

  1. जैसा कि जावा में GWT क्लाइंट एप्लिकेशन लिखा गया है, उसी के कारण संकलन समय पर वाक्य रचना संबंधी गलतियों को पकड़ने का अवसर मिलता है (हालांकि यह सभी JRE वर्गों का समर्थन नहीं करता है क्योंकि वे सुविधाएँ ब्राउज़र द्वारा ही समर्थित नहीं हैं)। आइए एक उदाहरण लेते हैं कि मैं क्या कह रहा हूं। यदि आप शुद्ध जावास्क्रिप्ट पुस्तकालय का उपयोग करके एक जावास्क्रिप्ट चर नाम याद करते हैं। जिस तरह से आप ऐसी गलती पकड़ सकते हैं, वह वांछित परिणामों के लिए आवेदन और परीक्षण चलाने के लिए है। जेनेरिक और एनोटेशन जैसी जावा सुविधाओं का पूरा उपयोग किया जाता है और इसे आपके एप्लिकेशन में उपयोग किया जा सकता है।

  2. कोई मौजूदा उपलब्ध पुस्तकालयों का उपयोग कर सकता है या आसानी से कोड के अनुसार आवश्यकता के अनुसार कोड उत्पन्न करने के लिए लिख सकता है। GWT कंपाइलर इसे संकलित करने और इसे जावास्क्रिप्ट में बदलने का ध्यान रखता है।

  3. कोड का प्रबंधन अधिक आसान हो जाता है।

  4. कोई बस कुछ सामान्य व्यापार तर्क को इस तरह से लिख सकता है कि इसका उपयोग GWT क्लाइंट साइड कोड और सर्वर साइड कोड पर जावा में किया जा सकता है जैसे कि डेटा का सत्यापन या कुछ सामान्य उपयोगिता फ़ंक्शंस।

  5. GWT ग्रहण प्लग-इन के उपयोग के साथ, आप अपने व्यावसायिक तर्क के लिए जावा में क्लाइंट कोड को आसानी से डीबग कर सकते हैं।

  6. जैसा कि GWT कंपाइलर आपके क्लाइंट जावा कोड को संकलित करता है और इसमें से जावास्क्रिप्ट उत्पन्न करता है। जिसे आपको इसे अपने सर्वर पर तैनात करने की आवश्यकता है, और यह अनुरोध किए जाने पर उपयोगकर्ता ब्राउज़र में सेवा और निष्पादित हो जाता है। इस जावास्क्रिप्ट को बनाते समय यह कुछ अनुकूलन करेगा।

    • यह जावास्क्रिप्ट को बनाते समय मृत कोड पर विचार नहीं करता है, जब मैं कहता हूं कि मृत कोड का मतलब "कोड है जो वहां है लेकिन मुख्य प्रवाह से नहीं बुलाया जा रहा है"। बदले में आपके अंतिम जावास्क्रिप्ट कोड के प्रभावी आकार को कम करता है।

    • यह उत्पन्न जावास्क्रिप्ट कोड का पालन करने का ध्यान रखता है।

    • यह उत्पन्न जावास्क्रिप्ट कोड का संशोधन करता है।

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

  7. यदि आप GWT के अंतर्राष्ट्रीयकरण सुविधा का उपयोग करके विभिन्न भाषाओं अर्थात अंग्रेजी, हिंदी, मराठी आदि के लिए अपना आवेदन लिख रहे हैं। जावास्क्रिप्ट कोड बनाते समय यह प्रति भाषा और ब्राउज़र संयोजन बनाता है। जो भाषा और ब्राउज़र के संयोजन के लिए जावास्क्रिप्ट कोड को सबसे इष्टतम और छोटा बनाता है।

  8. मामले में आपको सीधे जावास्क्रिप्ट का उपयोग करने की आवश्यकता होती है जिसे जावा जीडब्ल्यूटी कोड से बुलाया जा सकता है एक जेएसएनआई (जावास्क्रिप्ट नेटिव इंटरफ़ेस) का उपयोग करके कर सकता है। यहां तक ​​कि एक GWT जावा कोड को JavaSctipt से वापस भी कह सकते हैं।

  9. यदि आप बुकमार्क को सक्षम पेज बनाना चाहते हैं तो आप GWT के इतिहास फीचर का उपयोग कर सकते हैं।

  10. यदि आप JSON का उपयोग संचार और हेरफेर के लिए डेटा प्रारूप के रूप में करना चाहते हैं तो इसमें बहुत अच्छी सुविधा है जिसे जावास्क्रिप्ट ओवरले प्रकार कहा जाता है।

  11. GWT की डिफर्ड बाइंडिंग सुविधा एक अच्छी सुविधा है जो मुझे लगता है कि जावा के कारण प्रदान करना संभव है।

  12. आप जावा स्विंग स्टाइल में GWT के उपलब्ध विगेट्स का उपयोग करके अपने यूजर इंटरफेस का निर्माण कर सकते हैं। तुम भी बहुत आसानी से अपने कस्टम विगेट्स बना सकते हैं।

  13. यदि आप शुद्ध एचटीएमएल शैली में अपना यूजर इंटरफेस (वेब ​​पेज) बनाना चाहते हैं, तो आप जीडब्ल्यूटी की घोषणात्मक यूआई सुविधा का उपयोग कर सकते हैं। जो मुझे GWT की प्रमुख विशेषता में से एक लगता है। जिससे डेवलपर के लिए शुद्ध HTML शैली में पेज बनाना आसान हो जाता है। जो मुझे लगता है कि स्विंग स्टाइल कोडिंग की तुलना में अधिक बनाए रखने योग्य है। और सबसे महत्वपूर्ण बात यह है कि आप अभी भी जावा में अपने तर्क और शुद्ध एचटीएमएल में केवल प्रस्तुति भाग दे सकते हैं। (ध्यान दें: आप कभी भी जिस पद्धति का उपयोग करते हैं (डिक्लेरेटिव यूआई या स्विंग स्टाइल) अंततः उसका केवल HTML ही होता है लेकिन क्या फर्क पड़ता है कि आप जिस तरह से कोड करते हैं और उसे बनाए रखते हैं)।

  14. GWT का क्लाइंट बंडल फीचर आपके अन्य वेब संसाधनों जैसे कि सीएसएस, इमेज और अन्य टेक्स्ट कंटेंट को मैनेज करना बहुत आसान बनाता है।

    • सीएसएस संसाधन आपके सीएसएस के अंदर सशर्त तर्क रखना संभव बनाता है। आप अपने GWT क्लाइंट साइड जावा कोड से कुछ डायनेमिक मान भी एक्सेस कर सकते हैं।
    • यह आपकी सीएसएस कक्षाओं को बाधित करने का भी ध्यान रखेगा। और सबसे महत्वपूर्ण बात यह है कि GWT के पास css classe का उपयोग करने के लिए आपकी css फ़ाइलों से इंटरफेस का स्वचालित उत्पादन होता है।
    • छवि संसाधन डेवलपर के लिए बहुत ही आसानी से बनाए रखने योग्य फैशन में आपके एप्लिकेशन में छवियों का उपयोग करना आसान बनाता है। जब मैं आसानी से कहता हूं तो मेरे कहने का मतलब है कि जब आप हार्ड कोडेड URL का उपयोग करने के बजाय GWT जावा कोड में छवियों का उपयोग करना चाहते हैं, तो आप छवि संसाधन का उपयोग कर सकते हैं। लाभ आपको छवि संसाधन का उपयोग करने पर मिलेगा यदि आप स्थान बदलने जा रहे हैं या किसी अलग नाम के साथ कुछ अलग छवि का उपयोग करने जा रहे हैं तो आपको इसे एक स्थान पर बदलने की आवश्यकता है। छवि संसाधन की अधिक महत्वपूर्ण विशेषता यह है कि जब आप इसे सीएसएस संसाधन के साथ स्प्राइट के रूप में उपयोग करते हैं। यह उस छवि को इन-लाइन डेटा uri के रूप में बनाने या स्प्राइट के साथ उपयोग करने का ध्यान रखेगा। मैं यह नहीं कहता कि इसे अन्य ढांचे के साथ करना संभव नहीं है, जो अधिक महत्वपूर्ण है कि यह कितनी तेजी से और आसानी से आप कर सकते हैं। GWT यह आपके लिए बहुत आसान बनाता है।
    • डेटा संसाधन डेटा फ़ाइलों के लिए कुछ ऑप्टिमाइज़ेशन जोड़ते हैं। जैसे कि उनकी सामग्री के आधार पर उन फ़ाइलों का नाम बदलना जो इसे ब्राउज़र द्वारा दृढ़ता से उपलब्ध करने योग्य हैं। छोटी डेटा फ़ाइलों को इन-लाइन डेटा uri में परिवर्तित किया जा सकता है।
    • अन्य वेब संसाधनों के लिए क्लाइंट बंडल का उपयोग करके और यदि आप ठीक से अलग मॉड्यूल में आवेदन करते हैं। यह हर संसाधन के साथ पूरी तरह से पुन: प्रयोज्य मॉड्यूल बन सकता है। पुन: प्रयोज्य मॉड्यूल के बारे में क्या बड़ी बात है? अच्छी तरह से अगर आप कुछ मॉड्यूल में डायरेक्ट URL का उपयोग करके छवियों का उपयोग कर रहे हैं। और यदि आप उस मॉड्यूल को अन्य मॉड्यूल में शामिल करते हैं और उस मॉड्यूल में बनाए गए घटकों का उपयोग करने का प्रयास करते हैं, तो भी आपको उन छवियों को अपने अंतिम एप्लिकेशन के सार्वजनिक URL पर कॉपी करना होगा। अगर आपको उन चित्रों को छवि संसाधनों के रूप में उपयोग करने की आवश्यकता नहीं है।
    • अन्य अनुकूलन आप सीएसएस और छवियों के लिए क्लाइंट बंडल का उपयोग करके छोटे मॉड्यूल बनाकर प्राप्त कर सकते हैं। जहां आप अपने अंतिम मॉड्यूल / एस के अंदर केवल आवश्यक मॉड्यूल शामिल करने के लिए चुन सकते हैं। अंतर यह है कि अंतिम मॉड्यूल जावास्क्रिप्ट होगा और अन्य संसाधनों में केवल आवश्यक सामग्री होगी और पूरी सामग्री नहीं होगी भले ही आप मॉड्यूल के छोटे टुकड़े का उपयोग करना चाहते हों।
  15. सेल विजेट: पृष्ठबद्ध डेटा संग्रह प्रस्तुत करने के लिए GWT में सेल विजेट हैं। सेलटेबल, सेललिस्ट, सेलट्री और सेलब्रोसर जैसे विजेट हैं।

    • सेलटेबल पृष्ठबद्ध तालिका प्रारूप में डेटा प्रस्तुत करने के लिए है, इसमें ऐसी सुविधा है जहां आप दिए गए सेल की सामग्री को बदल सकते हैं। यह क्लाइंट साइड और सर्वर साइड दोनों पर पेजिनेशन का समर्थन करता है, यह कॉलम पर छँटाई का समर्थन करता है और यह एक या एक से अधिक रिकॉर्ड्स के चयन और उसी के लिए इवेंट जनरेट करने का भी समर्थन करता है।
    • सेललिस्ट का उपयोग सूची प्रारूप में डेटा प्रस्तुत करने के लिए किया जा सकता है और आइटम कस्टम प्रारूप में प्रदर्शित किए जा सकते हैं। यह क्लाइंट और सर्वर साइड पेजिनेशन और एक या कई रिकॉर्ड्स के चयन का भी समर्थन करता है और चयन के लिए ईवेंट बनाता है। CellTree और CellBrowser का उपयोग ट्री प्रारूप में डेटा प्रस्तुत करने के लिए किया जा सकता है।
  16. GWT क्लाइंट कोड से सर्वर के साथ संचार। यह क्लाइंट सर्वर संचार को लागू करने के कई तरीकों का समर्थन करता है।

    • यदि आप डेटा स्थानांतरण के लिए उपयोग किए जा रहे प्रोटोकॉल के बारे में चिंतित नहीं हैं तो यह GWT RPC तंत्र है। सर्वर के साथ डेटा ट्रांसफर के लिए अपने क्लाइंट साइड कोड को एकीकृत करना बहुत आसान है। आप कस्टम कोड में कस्टम डीटीओ (डेटा ट्रांसफर ऑब्जेक्ट) को परिभाषित कर सकते हैं जिसे सर्वर साइड कोड पर भी उपयोग किया जा सकता है। सर्वर साइड कार्यान्वयन उसी डीटीओ के पैरामीटर या रिटर्न मान के रूप में स्वीकार करता है। GWT RPC फ्रेम वर्क द्वारा अन्य सभी बातों का ध्यान रखा जाता है। यहां तक ​​कि यह क्लाइंट साइड कोड में सर्वर साइड कोड से कॉलर तक उठाए गए अपवादों का प्रचार करता है (बशर्ते आपको क्लाइंट साइड कोड पैकेज के अंदर उन अपवाद वर्गों को परिभाषित करने की आवश्यकता है। GWT RPC आंतरिक रूप से डेटा ट्रांसफर के लिए अपने स्वयं के कस्टम प्रोटोकॉल के साथ AJAX कॉल का उपयोग करता है।

    • यदि आप GWT RPC का उपयोग नहीं करना चाहते हैं तो आप अनुरोध बिल्डर का उपयोग करके सर्वर से डेटा लाने के लिए सर्वर AJAX कॉल कर सकते हैं। जिसे लागू करना भी बहुत आसान है। इसमें दिलचस्प फीचर रिक्वेस्ट फैक्ट्री भी है। इस फीचर की मदद से आप क्लाइंट कोड से कॉल करने के लिए अपनी DAO या सर्विस लेयर को उजागर कर सकते हैं। ऐसा करने के लिए आपको अपनी सेवा और कस्टम डेटा प्रकारों के लिए इंटरफ़ेस के कुछ सेट को परिभाषित करने की आवश्यकता है। और इन इंटरफेस का उपयोग करके आप क्लाइंट कोड से उन सेवाओं तक पहुंच सकते हैं। इन इंटरफ़ेस को जेनरेट करने के लिए मैंने मावेन प्लगइन लिखा है। यदि आप कुछ आवश्यक एनोटेशन संदर्भों के साथ अपनी DAO परत को एनोटेट करते हैं ( https://github.com/pandurangpatil/gwt-mvn-helper) उपयोग के लिए इसके अंदर mvn-हेल्पर-परीक्षण मॉड्यूल देखें। अनुरोध फैक्टरी सर्वर पर JDO या JPA जैसी ORM परत के साथ एकीकृत करने के लिए अधिक लक्षित है। यह ग्राहक कोड से दिए गए निकाय पर बने रहने के लिए एक समर्थन है। और सबसे महत्वपूर्ण यह है कि जब आप कॉल करते हैं तो इसे बनाए रखने की विधि और सर्वर में केवल परिवर्तन (डेल्टा) भेजें।

    • यदि आप क्रॉस डोमेन JSONP कॉल करना चाहते हैं तो आप एक ही रेफर कर सकते हैं।

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