2010-02-21 8 views
15

मैं सोच रहा था कि क्लाइंट साइड आर्किटेक्चर जीमेल का क्या फायदा है। मेरा मतलब है कि पृष्ठ पर एकाधिक iframes का लाभ क्या है; एचटीएमएल लेआउट के साथ एक और सभी जावास्क्रिप्ट के साथ दूसरा?जीमेल के क्लाइंट साइड वेब आर्किटेक्चर का क्या फायदा है?

क्या सभी डीओएम संचालन निष्पादित करना अधिक जटिल नहीं है? (आपको trough js ifram < -> शीर्ष < -> html iframe खोजना होगा।

विशेषज्ञों को क्या लगता है?

+0

मुझे लगता है कि "एस/कैसे/क्या" – glasnt

+0

@ टमाटर सैंडविच: प्रश्न में कोई "कैसे" नहीं है। कुछ भी नहीं बदला जाएगा! (संपादित करें: मेरी गलती! सवाल संपादित किया गया था। तो इसके बजाय मैं आप पर एक vi या कमांड के साथ परिवर्तन को प्रभावित करने के लिए अच्छा कहता हूं!)। –

उत्तर

7

संक्षेप में: क्लाइंट-साइड प्रदर्शन के लिए।

क्योंकि जीमेल में बहुत सारी जावास्क्रिप्ट (लगभग 700 केबी) है, इसमें कुछ भी डाउनलोड करने और चलाने में कुछ समय लगता है। एक अलग आईफ्रेम का उपयोग करके, जावास्क्रिप्ट डाउनलोड और चलाने से ब्राउज़र यूआई को अवरुद्ध नहीं किया जाएगा। अलग-अलग iframes में लिपियों और यूआई घटनाओं को लोकप्रिय ब्राउज़रों द्वारा समानांतर में निष्पादित किया जाएगा। यह दृष्टिकोण आपको अन्य आईफ्रेम में इंटरफ़ेस के लिए एक पूर्ण डोम बनाने की अनुमति देता है जबकि स्क्रिप्ट अभी भी निष्पादित की जा रही हैं। This article describes अवरुद्ध-स्क्रिप्ट समस्याओं के लिए सामान्य समाधान।

ब्राउज़र इतिहास को काम करने की अनुमति देने के लिए एक और आईफ्रेम आवश्यक है। Google की क्लोजर लाइब्रेरी में implementation में यह वास्तव में कैसे काम करता है।

सही डीओएम का उपयोग सुनिश्चित करने की जटिलता पर असर के लिए: जीमेल में यूआई घटकों के निर्माता (क्लोजर लाइब्रेरी का हिस्सा भी) सभी वैकल्पिक डीओएम सहायक तर्क लेते हैं।यह सहायक एक विशेष डोम से जुड़ा हुआ है, जो एक अलग फ्रेम में हो सकता है। विभिन्न डीओएम में हेरफेर करना पूरी तरह से इन यूआई घटकों के डिजाइन में बनाया गया है।

4

यह रिवर्स AJAX के लिए उपयोग किया जाने वाला एक "अंतहीन फ्रेम" है (जब कोई घटना होती है तो सर्वर क्लाइंट को संदेश भेजता है, सामान्य क्लाइंट के विपरीत जहां क्लाइंट सर्वर से कुछ पूछता है)। wikipedia से:

गतिशील वेब आवेदन के लिए एक बुनियादी तकनीक एक छिपा IFrame HTML तत्व (एक इनलाइन फ़्रेम है, जो एक एचटीएमएल दूसरे के अंदर दस्तावेज़ एम्बेड करने के लिए एक वेबसाइट की अनुमति देता है) का प्रयोग है। यह अदृश्य IFrame को एक चंकित ब्लॉक के रूप में भेजा गया है, जो इसे असीमित रूप से लंबे समय तक घोषित करता है (कभी-कभी "हमेशा के लिए फ्रेम" कहा जाता है)। जैसे-जैसे घटनाएं होती हैं, iframe धीरे-धीरे स्क्रिप्ट टैग से भरा हुआ है, जिसमें जावास्क्रिप्ट को ब्राउज़र में निष्पादित किया गया है। क्योंकि ब्राउज़र एचटीएमएल पेज क्रमशः प्रस्तुत करते हैं, प्रत्येक स्क्रिप्ट टैग प्राप्त होता है जैसा इसे प्राप्त किया जाता है।

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

+0

ऐसा नहीं है, antimatter15 की पोस्ट देखें। उदाहरण के लिए, क्लाइंट को नया ई-मेल अलर्ट भेजते समय कोई जावास्क्रिप्ट आईफ्रेम में जोड़ा जाता है। – molf

5

मुझे पूरा यकीन है कि यह पुश "रिवर्स-एजेक्स" सामग्री के लिए उपयोग किए जाने वाले आईफ्रेम नहीं है। जीमेल उनको संभालने के लिए Google क्लोजर लाइब्रेरी के goog.net.BrowserChannel सिस्टम का उपयोग करता है, और xhr और activex htmlfile ट्रांसपोर्ट का उपयोग करता है। (देखें: http://closure-library.googlecode.com/svn/docs/class_goog_net_BrowserChannel.html)

यह सब मुझे यकीन है, लेकिन मुझे लगता है कि कम से कम एक फ्रेम इतिहास के प्रबंधन के लिए होगा।

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