यह वास्तव में एक वास्तव में दिलचस्प सवाल है, क्योंकि यह कुछ रोचक डिजाइन निर्णयों का खुलासा करता है।
मैं आंशिक टेम्पलेट्स को प्रस्तुत करना पसंद करता हूं क्योंकि यह मेरे अनुप्रयोगों को समय के साथ बदलने की क्षमता देता है। यदि मुझे चार्ट के साथ <table>
से <div>
में बदलने की आवश्यकता है, तो टेम्पलेट में इसे समाहित करना आसान है। इसे ध्यान में रखते हुए, मैं लगभग हर पृष्ठ को कई छोटे टेम्पलेट्स के कुल के रूप में देखता हूं, जो बदल सकता है। Grails 2.0 डिफ़ॉल्ट मचान इस प्रकार के दृष्टिकोण की ओर बढ़ गया है, और यह एक अच्छा विचार है।
सवाल यह है कि क्या वे क्लाइंट-साइड टेम्पलेट्स या सर्वर-साइड होना चाहिए इस मुद्दे का क्रूक्स है।
सर्वर साइड टेम्पलेट्स प्रारंभिक पृष्ठ लोड पर अपना मार्कअप क्लीनर रखें।यहां तक कि यदि आप के Mustache जैसे कुछ का उपयोग करते हैं, तो आप थोड़े क्रम में पृष्ठ में एक खाली तत्व (अपने टेम्पलेट के साथ कुछ) रखने की आवश्यकता है, इसे उचित तरीके से शैली दें, और जावास्क्रिप्ट में इसके साथ काम करने के लिए अपनी जानकारी अपडेट करने के लिए इसके साथ काम करें।
कमियां
- "बातूनी" तार के पार अनुप्रयोगों
- बड़ा लिफाफे
- धीमी यूआई प्रतिक्रिया समय (प्रतिक्रियाएं एचटीएमएल, जो स्थिर माना जा सकता है शामिल हैं)
लाभ
- अच्छा के लिए बहुत सारे सर्वर साइड भाषा अनुभव वाले लोग
- सर्वर-साइड वातावरण में हस्तक्षेप या संशोधित करना आसान हो सकता है (उदा।) एक पेज से अधिक टेम्पलेट, जो प्रोग्राम के रूप में लोड किए गए हैं और शामिल साथ एम्बेडेड
- आवेदन सामग्री "एक ही स्थान पर"
क्लाइंट-साइड टेम्पलेट्स वास्तव में सर्वर लोड कम कर सकते हैं के सबसे रखता वापसी, लेकिन। वे एक अनुप्रयोग "कम-चट्टी" बनाते हैं, उस संभावित रूप से आप जेएसओएन बैक के बड़े संग्रह (बाइट्स की एक ही संख्या में, या कम, जो HTML द्वारा लिया जाएगा, में सर्वर पर वापस कॉल की संख्या को कम कर सकता है एक सर्वर-साइड टेम्पलेट योजना)। वे यूआई अनुभव को उपयोगकर्ताओं के लिए वास्तव में तेज़ बनाते हैं, क्योंकि "अपडेट" लिंक पर क्लिक करने से एजेक्स राउंड ट्रिप नहीं करना पड़ता है। कुछ ने कहा है:
एंथोनी ईडन @aeden 10 दिसंबर किये गये पसंदीदा · खुला वेब ऐप्स का भविष्य: अनुरोध कार्यों के द्वारा नियंत्रित किया जाता है, तर्क हमेशा अतुल्यकालिक है, और HTML सर्वर पर उत्पन्न नहीं होती।
कमियां
- नहीं महान एसईओ के लिए (अन-अर्थ पर प्रारंभिक पृष्ठ लोड बाहरी UI तत्व)
- आवश्यक है कुछ जावास्क्रिप्ट foo (तत्वों में हेरफेर करने के)
लाभ - उत्तरदायी - छोटे लिफाफे
रुझान लगता है कि क्लाइंट साइड टेम्पलेट्स की तरफ बढ़ रहा है, खासकर एचटीएमएल 5 जोड़ों (जैसे <canvas>
) द्वारा उजागर की गई शक्ति के साथ ... लेकिन यदि उन्हें लीवरेज करने की आवश्यकता है तो आपको उन तकनीकों पर भरोसा करना होगा जिनके बारे में आप बेहद परिचित नहीं हैं, और आप Grails के साथ अधिक सहज महसूस करते हैं आंशिक, उन लोगों के साथ शुरू करना और बाद में प्रदर्शन और अन्य चिंताओं के आधार पर क्लाइंट साइड टेम्प्लेट की ओर रिफैक्टरिंग की जांच करना फायदेमंद हो सकता है।
मुझे संदेह होगा कि आप पृष्ठ के साथ उपयोगकर्ता के पहले संपर्क पर पहले से ही समान सामग्री प्रस्तुत कर रहे हैं, जैसा कि आप "अधिक लोड लोड" के साथ करना चाहते हैं। क्या वैसे ही "लोड लोड" पर क्लिक करने के बाद लोड होने वाले लोड को लोड करने का अर्थ नहीं होगा और उस कोड का पुन: उपयोग करें जिसे आपने पहले ही लिखा है? आपका प्रश्न दिलचस्प है और मैं देखना चाहता हूं कि विषय पर आपके विचार और दूसरों के क्या हैं – jcage
हां, पहली बातचीत पर मैं एक ही टेम्पलेट (बिंदु 2 में) का उपयोग कर रहा हूं ताकि पूरा पृष्ठ प्रस्तुत किया जा सके (दूसरे के साथ) पृष्ठ के स्थिर खंड)। दोनों विकल्प मेरे लिए काम करते हैं, और मैंने उन्हें बिखरे हुए मामले में दोनों का उपयोग किया है। मैं इस पर दूसरों के विचारों को भी देखना चाहता हूं। – omarello