2009-05-14 10 views
13

मैं एक ग्राहक डेटाबेस को कार्यान्वित कर रहा हूं जो मुझे उपयोगकर्ताओं और कंपनियों की खोज करने, उनके विवरण ब्राउज़ और संपादित करने और एएसपी.नेट एमवीसी और जावास्क्रिप्ट (jQuery) का उपयोग करके कई अन्य चीजों को देखने देता है।क्या जावास्क्रिप्ट वाले आंशिक दृश्यों को वापस करने के लिए यह बुरा अभ्यास है?

जब भी कोई पोस्ट या प्राप्त होता है, तो मैं jQuery.load के माध्यम से ऐसा करता हूं और आंशिक दृश्य को DOM में डालता हूं।

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

शुरुआत में मैं इसे कॉलबैक/कोड में संभालने वाला था जो डीओएम में आंशिक दृश्य डालता है। हालांकि, इसके परिणामस्वरूप एक बड़ी लिपि में जावास्क्रिप्ट फ़ंक्शंस शामिल थे जो विभिन्न पृष्ठों को संदर्भित करते हैं। मैंने संबंधित पृष्ठों में स्क्रिप्ट डालने से बड़ी जावास्क्रिप्ट को दोबारा प्रतिक्रिया दी।

अब कोड चिकना है (मेरे पास बहुत कम OnXXXPartialView हैंडलर हैं) और कोड आंशिक रूप से आंशिक दृश्य के अंदर है। उनमें से अधिकांश फ़ाइलों में केवल जावास्क्रिप्ट कोड की 3-4 लाइनें शामिल हैं, इसलिए ओवरहेड वास्तव में महत्वपूर्ण नहीं है।

तो प्रभावी रूप से मैं केवल दस्तावेज़ डोम में तत्व जोड़ नहीं रहा हूं, लेकिन कभी-कभी मैं जावास्क्रिप्ट का एक टुकड़ा भी जोड़ रहा हूं। अभ्यास में यह ठीक काम करता है, लेकिन ऐसा लगता है कि Firebug can't debug the dynamically loaded scripts

फ़ायरबग मुद्दे के कामकाज का कामकाज है, लेकिन मुझे आश्चर्य है कि मेरा आर्किटेक्चर यहां असली अपराधी हो सकता है या नहीं। आप जावास्क्रिप्ट कहां डालते हैं जो आंशिक विचारों से संबंधित है? क्या कोई सर्वोत्तम अभ्यास है?

+0

आप फिर से शब्द सकता बदलकर अपने प्रश्न parametrize के लिए देता है कि अगर मामला है। –

+0

अच्छा बिंदु, किया गया। –

+0

क्या आप अभी भी इसे वैध विधि मानते हैं (यानी आंशिक विचारों में क्लीनर संगठन के लिए जावास्क्रिप्ट शामिल है), या आप किसी और चीज़ पर चले गए हैं? –

उत्तर

7

यदि आप अपने आंशिक विचारों में जावास्क्रिप्ट को शामिल करने की परेशानी से गुज़र रहे हैं, तो मैं आपके AJAX कॉल में बस JSON लौटने के लिए स्विच करूँगा, इस तरह आप इसे क्लाइंट पर ही संभाल सकते हैं। हालांकि, मैं मानता हूं कि मैं हमेशा इस विधि को पसंद करता हूं।

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

हालांकि मैं उत्सुक हूं, जावास्क्रिप्ट में क्या है?

संपादित करें: विशिष्ट होने के लिए, मैं जेसन प्राप्त करने के लिए अजाक्स कॉल करने के पक्ष में हूं, फिर क्लाइंट साइड जेएस का उपयोग करके "आंशिक दृश्य" बनाने और इसे डोम में डालने के लिए उपयोग कर रहा हूं। क्लाइंट के लिए सर्वर को एचटीएमएल में डालने के लिए सर्वर प्रदान करने के लिए AJAX कॉल करने के विरोध में।

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

मुझे लगता है कि आप इसे कॉलबैक/कोड में संभाल सकते हैं जो डोम में आंशिक दृश्य डालता है।

संपादित करें: यदि इसका व्यवस्थित, कुशल, व्यवस्थित और आपके लिए काम करता है तो मैं इसके साथ रहूंगा। आंशिक दृश्य में सब कुछ अच्छा और कॉम्पैक्ट रखने का विचार निश्चित रूप से आकर्षक है इसलिए मैं किसी भी सर्वोत्तम प्रथाओं का उल्लंघन करने से बहुत चिंतित नहीं हूं। मेरी एकमात्र चिंता यह थी कि जेएस पुन: प्रयोज्य हो सकता है, जो मामला होगा यदि आप एक ही स्क्रिप्ट को बार-बार सम्मिलित करते हैं।लेकिन इस मामले में ऐसा लगता है कि आपके पास विभागीकरण का एक अच्छा सौदा चल रहा है, इसलिए जब तक आप अपनी स्क्रिप्ट को सामान्यीकृत नहीं कर सकते हैं और उन्हें अपने बाकी जेएस के साथ शामिल नहीं कर लेते हैं, तब तक मैं इसके साथ रहूंगा।

+0

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

+0

शुरुआत में मैं इसे कॉलबैक/कोड में संभालने वाला था जो आपके सुझाव के अनुसार डोम में आंशिक दृश्य डालता है। हालांकि, इसके परिणामस्वरूप एक बड़ी लिपि में जावास्क्रिप्ट फ़ंक्शंस शामिल थे जो विभिन्न पृष्ठों को संदर्भित करते हैं। मैंने इसे अपने वर्तमान दृष्टिकोण में दोबारा प्रतिक्रिया दी क्योंकि यह मेरे लिए बहुत असंभव लग रहा था। अब कोड चिकना है (मेरे पास बहुत कम OnXXXPartialView हैंडलर हैं) और यह कोड आंशिक रूप से आंशिक दृश्य के अंदर है। –

+0

मैं अपने उत्तर में जवाब दूंगा –

3

अंत में - जावास्क्रिप्ट एक फ़ाइल में होना चाहिए (क्योंकि प्रत्येक http GET कुछ मूल्यवान समय खर्च करता है) और minified। ये लिंक आपको रूचि दे सकते हैं: here और here

जेएस को संभालने का आपका तरीका कुछ अनियंत्रित डेटा स्थानांतरण करता है - जेएस भेजने की बजाय, इसे स्थैतिक बनाएं, इसे क्लाइंट साइड और पैरामीट्रिज पर कैश करें।

पोस्ट से ऊपर, "शामिल हैं" को "शामिल है" एक अच्छा संकेत (JSON) कैसे अपने जे एस :)

+0

अच्छा बिंदु, मुझे यह समझने में थोड़ी देर लग गई कि आपका क्या मतलब है क्योंकि मुझे लगता है कि मूल प्रश्न "शामिल" के बजाय जावास्क्रिप्ट "शामिल" के बारे में बात कर रहा था। आप सही हैं, एक स्क्रिप्ट में शामिल हैं (src = script.js) उस स्थिति में करने के लिए एक बुरी बात होगी और निश्चित रूप से ऐसा कुछ होगा जिसे आप टालना चाहते हैं। –

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

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