2011-04-18 12 views
12

मैं अभी भी उलझन में हूं कि वेब एप्लिकेशन बनाने के दौरान जावास्क्रिप्ट कोड एमवीसी पैटर्न में कहाँ बैठता है। मैंने सोचा कि यह इस तरह काम करता है।जावास्क्रिप्ट एक वेब अनुप्रयोग के एमवीसी पैटर्न में कहाँ बैठता है?

  • मॉडल डेटाबेस और डेटा/बाहर प्राप्त करने के लिए आवश्यक वर्गों है।
  • नियंत्रक कक्षाएं हैं जहां मैं अपना तर्क लिखता हूं, जो जावा सर्वलेट्स है, जो अजाक्स अनुरोध स्वीकार करते हैं और फिर डेटाबेस को पर कॉल करते हैं;
  • देखें JSP पेज जो सर्वलेट (मेरी नियंत्रक)

क्योंकि जावा स्क्रिप्ट कोड ब्राउज़र मैं दृश्य के हिस्से के रूप में यह के बारे में सोच में संकलित किया गया है, लेकिन के माध्यम से Ajax अनुरोध करने के लिए लौट रहा है यह उपयोगकर्ता इनपुट को संभालने, सर्वर के अनुरोधों को उन घटनाओं के आधार पर बनाने और फिर डेटा को पृष्ठ पर वापस कर रहा है, तो क्या यह नियंत्रक के हिस्से में भी होगा?

इसके अलावा, इसका मतलब क्या है जब वे एमवीसी में डोमेन मॉडल का संदर्भ लेते हैं?

उत्तर

5

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

जावास्क्रिप्ट आपके सर्वर के संदर्भ में आपके सर्वर के संदर्भ में भी निष्पादित करता है, इसलिए इसे दृश्य में जाना चाहिए।

1

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

+0

@ अमीर- प्रतिक्रिया के लिए धन्यवाद। – screenm0nkey

3

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

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

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

कोई भी जावास्क्रिप्ट में एक रिच फ्रंटेंड भी कर सकता है डेटा स्रोत। इस मामले में, एक बार फिर, जावास्क्रिप्ट मॉडल, विचार और नियंत्रकों को बनाए रखने के लिए जिम्मेदार होगा।

डोमेन मॉडल आम तौर पर आपके आवेदन के व्यावसायिक तर्क को संदर्भित करता है। मस्तिष्क इतने बात करते हैं कि वास्तव में आपके ऐप में क्या होना चाहिए। यह एक एप के सभी व्यावसायिक तर्क encapsulating एक अमूर्त अवधारणा है।

+0

क्या कोई विशेष कारण है कि आप backbone.js की सिफारिश करते हैं और एमवीसी पैटर्न को लागू करने के लिए कुछ और नहीं? ([PureMVC] (http://trac.puremvc.org/PureMVC_JS), [जावास्क्रिप्टएमवीसी] (http://javascriptmvc.com/), आदि) – Paolo

+0

शुद्ध के साथ कभी काम नहीं किया, लेकिन जावास्क्रिप्ट एमवीसी, कम से कम आखिरी बार मैं मैंने देखा कि जिस चीज की मुझे आवश्यकता है उसके लिए यह बहुत फूला हुआ लग रहा था। रीढ़ की हड्डी एक बहुत ही साफ, सरल कार्यान्वयन है, स्रोत का पालन करना आसान है और यह बहुत कम फ़ाइल आकार में घूमता है। मैंने यह भी पाया है कि यह विरासत पैटर्न बहुत अच्छा है, इसे सीधे जावास्क्रिप्ट में ओओ के लिए अच्छा बना रहा है, भले ही आप किसी भी दृश्य/नियंत्रक सामग्री का उपयोग न करें। – brad

+0

+1 धन्यवाद आदमी। यह वास्तव में एक अच्छी प्रतिक्रिया थी। – screenm0nkey

1

जावास्क्रिप्ट कोड दृश्य का हिस्सा है। दृश्य ब्राउज़र पर आउटपुट प्राप्त करता है, और जावास्क्रिप्ट कोड में स्वचालित रूप से दृश्य दिखाई नहीं देता है, इसका उपयोग डीओएम को संशोधित करने के लिए किया जा सकता है।

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

कुछ लोगों के पास केवल अजाक्स अनुरोधों के लिए नियंत्रक होगा, जबकि अन्य आउटपुट को संशोधित करने के लिए अजाक्स अनुरोध को दर्शाते हुए नियंत्रक को तर्क दे सकते हैं।

किसी भी तरह से, जावास्क्रिप्ट कोड दृश्य में बैठता है और आपको एक एमवीसी सेटिंग में अजाक्स के बारे में कुछ अन्य डिज़ाइन रणनीतियों को सीखने की आवश्यकता हो सकती है।

+0

+1 प्रतिक्रिया के लिए धन्यवाद। – screenm0nkey

0

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

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