2009-06-17 14 views
12

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

उत्तर

8

एक चीज जो मैं देखता हूं वह यह है कि यदि आपके पास (सामान्य) पूर्ण पृष्ठ HTTP वितरण है तो आपके सर्वर को अधिक HTTP अनुरोधों से अधिकतर हिट मिल जाएगी।

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

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

+0

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

2

मैंने डीडब्लूआर के साथ एक परियोजना पर काम किया - वास्तव में एक अच्छा उपकरण।

हालांकि मैं विकास की गति के बारे में आश्वस्त नहीं हूं। उन्होंने on the development log पोस्ट किया है कि वे दरवाजा बाहर 3.0 प्राप्त करने पर काम कर रहे हैं, लेकिन अंतिम स्थिर रिलीज - 2.0 - गर्मियों 2006 में बाहर था। यह एक समर्थन परिप्रेक्ष्य से थोड़ा चिंताजनक है - बग फिक्स विशेष रूप से।

2

मुख्य समस्या मैंने अनुभव किया है कि एक सिस्टम पर लोड टेस्ट स्क्रिप्ट करने की कोशिश कर रहा है जहां काम का मुख्य हिस्सा डीडब्लूआर कॉल के माध्यम से किया जाता है। बदलते पैरामीटर के साथ यूआरएल के गुच्छा का जवाब देने की तुलना में कॉल का प्रारूप दोहराना मुश्किल है।

फिर भी डीडब्लूआर एक उत्कृष्ट ढांचा है और जावास्क्रिप्ट को कार्यान्वित करता है -> जावा आरपीसी बहुत आसान आसान है।

0

DWR एक शानदार उपकरण है जब आपकी साइट पर बहुत सारे AJAX कॉल हैं।

प्रत्येक पृष्ठ डीडब्ल्यूआर RPC कॉल करता है कि शामिल करने के लिए की जरूरत है:

क) एक अंतरफलक फ़ाइल कॉल करने के लिए इसी बनाया जा रहा है। और बी) एक जेएस फ़ाइल dwr के साथ बंडल किया गया है जिसमें डीआईआर इंजन कोड है जो इन कॉल को संभव बनाता है। उदाहरण के लिए <script src="/dwr/engine.js" ></script>

वेब तकनीक को अनुकूलित करते समय अक्सर उपयोग की जाने वाली एक तकनीक ब्राउज़र कैश का उपयोग जितना संभव हो सके जब संसाधन (जैसे जेएस फ़ाइल) सर्वर पर नहीं बदला जाता है।

engine.js ऐसा कुछ है जो तब तक नहीं बदलेगा जब तक कि आप अपने डीआईआर को एक नए संस्करण में अपग्रेड नहीं करते। लेकिन, डिफ़ॉल्ट रूप से, engine.js आपके वेबसर्वर द्वारा प्रदत्त एक स्थिर फ़ाइल नहीं है। यह dwr टूल itsef के हिस्से के रूप में बंडल किया गया है और dwr नियंत्रक/servlet द्वारा प्रदान किया जाता है। यह क्लाइंट साइड कैशिंग की सहायता नहीं करता है।

तो, अपने वेबसर्वर के दस्तावेज़ रूट के तहत engine.js को सहेजना फायदेमंद है और वेबसर्वर को इसे स्थिर फ़ाइल के रूप में सेवा करने दें।

+0

डीडब्ल्यूआर की साइट पर caching engine.js के बारे में अधिक जानकारी: http://directwebremoting.org/dwr/browser/engine/static.html – Jonik

1

वर्तमान डीडब्लूआर 3.x की एक सुविधा गायब है कि किसी भी उपयोगकर्ता को अच्छी देखभाल करना चाहिए कि जब बीन के एक उदाहरण में कुल मूल्य के गुण होते हैं, तो उन गुणों को अभी भी JSON से इंजेक्शन दिया जाएगा और इन अनावश्यक डेटा को प्रभावित करेगा प्रदर्शन।

जब किसी संपत्ति के पास न्यूल का मूल्य होता है, तो आमतौर पर इसे फ्रंटेंड पर नहीं भेजा जाना चाहिए।

समस्या का विवरण: http://dwr.2114559.n2.nabble.com/Creating-Custom-bean-converter-td6178318.html

0

अन्य समाधान के बीच सबसे बड़ा अंतर यह हस्तांतरण करने के लिए वस्तुओं (marshaling) वस्तु संदर्भ है।

उदाहरण के लिए, अगर आप इसका इस्तेमाल एक पेड़ हस्तांतरण करने के लिए:

एक

| -B

| एक सूची में -सी

{ए, बी, सी}:

B.parent = एक C.parent = एक

तो एक वें है जावस्क्रिट में एक ही वस्तु!

बुरा तरफ, अगर आप परिपत्र निर्भरता और वस्तुओं की बहुत कुछ के साथ जटिल संरचना है: एक < -B, बी < -सी, सी < -B, सी < ए, ... यह दुर्घटना सकता है।

वैसे भी, मैं इसे एक वास्तविक ग्राफ में उपयोग करने के लिए हजारों ऑब्जेक्ट्स को एक HTML पृष्ठ में स्थानांतरित करने के लिए उत्पादन में कई सैकड़ों कंपनियों द्वारा उपयोग की जाने वाली वास्तविक परियोजना में उपयोग करता हूं और यह एक अच्छा प्रदर्शन के साथ अच्छी तरह से काम करता है।

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