2008-12-12 15 views
9

मैं मौजूदा वेब अनुप्रयोग के सामने के अंत के रूप में जीडब्ल्यूटी का उपयोग करने पर विचार कर रहा हूं।एक विरासत अनुप्रयोग में एकाधिक होस्ट पृष्ठों के साथ जीडब्ल्यूटी

मैं एक बार में 100% जीडब्ल्यूटी के लिए एक पूर्ण पुनर्लेखन को उचित नहीं ठहरा सकता। ऐसा लगता है कि मैं सिस्टम के कुछ हिस्सों को धीरे-धीरे जीडब्ल्यूटी में माइग्रेट कर दूंगा। हालांकि स्थिरता के लिए मैं जीडब्ल्यूटी टैबपनेल, मेनूबार आदि का उपयोग पहले दिन से वैश्विक इंटरफ़ेस तत्वों के रूप में करना चाहता हूं।

यह देखने के लिए एक प्रयोग के रूप में कि सिस्टम के 'विरासत' भागों को कैसे शामिल किया जा सकता है, मैंने निम्नलिखित किया है।

एप्लिकेशन का मुख्य पृष्ठ टेम्पलेट अब प्रत्येक पृष्ठ पर एक छोटा 'रैपर' GWT मॉड्यूल लोड करता है। यह जीडब्ल्यूटी मॉड्यूल गतिशील रूप से जेनरेट किए गए होस्ट पेज में डीआईवी का चयन ढूंढता है। यदि डीआईवी पाया जाता है, तो एक उपयुक्त विजेट जगह में रखा जाता है, यानी मेनूबार, टैबपनेल।

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

प्रोटोटाइप के रूप में, यह सब पूरी तरह से काम करता है और तेज़ी से लोड होता है। हालांकि, ऐसा लगता है कि जीडब्ल्यूटी ऐप्स वास्तव में एक मेजबान पृष्ठ से चलाने के लिए डिज़ाइन किए गए हैं, न कि सैकड़ों गतिशील रूप से जेनरेट किए गए।

क्या कोई भी उपरोक्त दृष्टिकोण में चलने वाले किसी भी मुद्दे को हाइलाइट कर सकता है, खासकर जीडब्ल्यूटी मॉड्यूल आकार में बढ़ता है? मैं विरासत रैपर मॉड्यूल जानबूझकर दुबला रखने का लक्ष्य रखूंगा। अन्य कार्यक्षमता अलग मॉड्यूल में लागू किया जाएगा।

अन्य लोगों ने धीरे-धीरे फैशन में जीडब्ल्यूटी को अपने सामने के अंत में कैसे एकीकृत किया है?

उत्तर

5

जीडब्ल्यूटी को इस्तेमाल करने के लिए डिज़ाइन किए गए तरीकों में से एक बिल्कुल ठीक है जैसा आपने इसका उपयोग किया है। हमने अपने कई ऐप्स में ऐसा किया है - जहां एक 'जीडब्लूटी मॉड्यूल' है जिसमें कई 'पार्ट्स' हैं जो इस पर आधारित हैं कि किसी दिए गए आईडी को पृष्ठ पर मौजूद है या नहीं। तो मुझे नहीं लगता कि आपको इस तरह से सभी मुद्दों पर कोई समस्या होगी। हम अक्सर नए वेब अनुप्रयोगों के लिए इस दृष्टिकोण का उपयोग करते हैं, जहां हम पृष्ठ पर कुछ 'विजेट' चाहते हैं, जीडब्ल्यूटी में पूरे एप्लिकेशन को कोड करने के बजाए।

इससे कोई बड़ा अंतर नहीं आएगा, लेकिन एक बात जो मैं सुझाऊंगा वह जीडब्ल्यूटी जावास्क्रिप्ट कोड को आपके मुख्य टेम्पलेट में नहीं डाल रहा है, बल्कि इसे केवल उन पृष्ठों पर रखे जिन्हें इसकी आवश्यकता है। यह सच है कि यदि आप HTTP नहीं चला रहे हैं तो यह मूल रूप से हमेशा के लिए कैश किया जाता है, लेकिन मॉड्यूल में लोगों को लोड करने में गलत लगता है यदि वास्तव में उस पृष्ठ पर इसकी आवश्यकता नहीं है। यह निश्चित रूप से इस बात पर निर्भर करता है कि लोग आपकी साइट का उपयोग कैसे करते हैं, अगर वे इसे डाउनलोड करने की संभावना रखते हैं तो इससे कोई फर्क नहीं पड़ता।

2

आप इसे सही कर रहे हैं। जीडब्ल्यूटी फुटप्रिंट को कई अलग-अलग ऐप्स में तोड़कर 'कम करने' की कोशिश करने के लिए प्रलोभन से बचने से बचें।

जीडब्ल्यूटी प्रदर्शन की कुंजी जितनी संभव हो उतनी डाउनलोड होनी चाहिए और यह सुनिश्चित करने के लिए कि वे कैश किए गए हैं। एक बार 250k बंडल लोड करना दो 200k बंडलों की तुलना में काफी बेहतर है और क्योंकि बड़ी चीजों के साथ संपीड़न बेहतर होता है क्योंकि चीजें बढ़ने के साथ ही आप वास्तव में लाभ प्राप्त करना शुरू कर देते हैं।

वाई-धीमी & फ़ायरबग वास्तव में सहायक हो सकता है जब यह स्वयं को समझाने की बात आती है।

एक प्रदर्शन चाल आप की जाँच हो सकता है नमूना अध्याय यहाँ में उपलब्ध है: http://www.infoq.com/articles/progwt यह जावास्क्रिप्ट चर में स्लॉट और पूर्वप्रविष्टि डेटा के किसी भी संख्या में आसपास लोड हो रहा है GWT विजेट एक मिनी वास्तुकला को दर्शाता है। यह आपके जीडब्ल्यूटी विजेट को लोड करने की अनुमति देता है और उनके द्वारा उपयोग किए जाने वाले डेटा को प्राप्त करने के लिए दूसरी HTTP GET की आवश्यकता नहीं होती है। प्रैक्टिस में मैंने पाया कि यह एक अच्छा प्रदर्शन बढ़ावा था।

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