2010-02-11 9 views

उत्तर

61

GWT.create का उपयोग स्थगित बाध्यकारी के लिए जीडब्ल्यूटी कंपाइलर द्वारा किया जाता है। डिफरर्ड बाइंडिंग जीडब्ल्यूटी कंपाइलर की एक विशेषता है जो संकलन समय पर कोड के कई संस्करणों को उत्पन्न करके काम करती है, जिनमें से केवल एक को रनटाइम पर बूटस्ट्रैपिंग के दौरान किसी विशेष क्लाइंट द्वारा लोड करने की आवश्यकता होती है।

आपको केवल उन मामलों के लिए GWT.create का उपयोग करना चाहिए जो इस विशिष्ट उपयोग मामले पर निर्भर करते हैं। उदाहरण के लिए आरपीसी कक्षा बनाते समय: (MyServiceAsync)GWT.create(MyService.class)। अन्य सभी मामलों में new का उपयोग करें।

अधिक जानकारी के लिए स्थगित बंधन पर GWT पृष्ठ की जाँच: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html

+2

इसके लिए धन्यवाद - इसलिए (मूल मामले में) यदि कार्यान्वयन अलग-अलग लोकेल/ब्राउज़रों के लिए नहीं बदलता है, तो नए उपयोग करें, यदि एकाधिक कार्यान्वयन का उपयोग किया जाएगा। – RodeoClown

+0

वास्तव में आप स्थगित बाध्यकारी का उपयोग न करने पर 'GWT.create' का उपयोग कर सकते हैं। यदि एक स्थगित बाध्यकारी नियम नहीं मिला है तो जीडब्ल्यूटी कंपाइलर 'नए' ऑपरेटर को अनुवाद करेगा। विस्तारित बिंदुओं के साथ एक lib या घटक बनाते समय यह उपयोगी होता है जिसे बाद में अन्य डेवलपर्स द्वारा उपयोग किया जाता है। –

28

GWT.create प्रतिबिंब समर्थन की कमी के लिए स्थगित बाध्यकारी कार्य को नियोजित करता है।

FAQ के अनुसार:

बाध्यकारी स्थगित जावा प्रतिबिंब के लिए गूगल वेब टूलकिट का जवाब है।

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

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

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

+0

इतना ही नहीं, लेकिन सबसे चौखटे कि कोड पीढ़ी (न केवल प्रतिबिंब की कमी बायपास करने के लिए) पर भरोसा करते हैं GWT.create विधि का उपयोग करें। –

संबंधित मुद्दे