2013-10-19 3 views
6

मुझे पता है कि निम्नलिखित GWT में एक ही किसी तरह का है जेएसएनआई (जावास्क्रिप्ट) में?

उत्तर

11

Window एक क्लासिक स्टैटिक विधियों का एक वर्ग है, जिसका उपयोग आप ब्राउज़र विंडो के कुछ गुणों को प्राप्त करने या सेट करने के लिए कर सकते हैं, लेकिन असल में यह मूल ब्राउज़र विंडो ऑब्जेक्ट नहीं है। ये विधि कार्यान्वयन अंततः JSNI ब्लॉक हैं जो $wnd चर का उपयोग उन गुणों को सेट/प्राप्त करने के लिए करते हैं। Window.alert() की तरह जिसका कार्यान्वयन $wnd.alert() होगा। ध्यान दें कि Window.javawindow.console आदि

GWT की तरह ब्राउज़र की खिड़की वस्तु में सब कुछ के लिए पहुँच नहीं है का उपयोग करता है $wndwindow के बजाय क्योंकि संकलित कोड एक iframe में सामान्य रूप से क्रियान्वित किया जाता है, और इस संदर्भ में, window आइफ्रेम खिड़की दर्शाएंगे जबकि $wnd पैरेंट विंडो का संदर्भ देगा। $doc के साथ ऐसा ही होता है जो मूल दस्तावेज़ में iframe में संदर्भ है।

दूसरी तरफ Document में एक जावा वर्ग जो JavaScriptObject फैली हुई है, इसका मतलब है कि यह एक Overlay प्रकार जो मूल रूप से मतलब है कि यह एक देशी जावास्क्रिप्ट वस्तु के लिए एक विशेष आवरण है है, यह अंतर्निहित जावास्क्रिप्ट संशोधित नहीं करता है, लेकिन एक कहते हैं इसके साथ बातचीत करने के लिए जावा विधियों का सेट। Jsni में जाने पर इसे सुरक्षित रूप से कास्ट किया जा सकता है।

सारांश में, हालांकि Document और $doc जावा दुनिया में ही नहीं हैं, जब यह संकलित किया गया है कि वे एक ही हो जाएगा, अन्यथा Window यह $wnd का ओवरले नहीं है, यह ब्राउज़र के कुछ तरीकों का उपयोग करने के लिए सिर्फ एक रास्ता है खिड़की।

हालांकि जीडब्ल्यूटी ने मूल जेएस वस्तुओं और विधियों के लिए कोड प्रतिनिधियों को संकलित किया, जेएस और जावा वस्तुओं के बीच समानताएं खोजने की कोशिश न करें। जीडब्ल्यूटी ने जावा ऑब्जेक्ट्स, विगेट्स, पैटर्न इत्यादि के सेट का उपयोग करके AJAX अनुप्रयोगों को विकसित करने के लिए एक एपीआई डिज़ाइन किया है। कुछ ऑब्जेक्ट्स और विधियों का नाम उसी तरह से रखा गया है, लेकिन लगभग एपीआई अलग है। हालांकि, अन्य परियोजनाएं हैं जो जावा को जावास्क्रिप्ट में संकलित करती हैं, जिसमें ST-JS जैसे दोनों दुनिया के बीच कठोर समांतरता है, और जीडब्ल्यूटी Elemental नामक एक प्रयोगात्मक लाइब्रेरी प्रदान करता है जिसका एपीआई लगभग जावास्क्रिप्ट (यह केवल क्रोम के लिए उपलब्ध है) के समान है।

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