2011-12-16 14 views
6

मैं एक्सप्रेस के साथ बंडल किए गए टेम्पलेट इंजन जेड के बारे में सीख रहा हूं। जैसा कि मैं समझता हूं, जेड सर्वर-साइड प्रतिपादन के लिए अनुमति देता है। यह दो कारणों से उपरोक्त नहीं है:क्या यह टेम्पलेट सर्वर-साइड प्रस्तुत करने के लिए समझ में आता है?

1) सर्वर को टेम्पलेट्स प्रस्तुत करने के लिए और अधिक गणना करना है। काम क्लाइंट-साइड धक्का दिया जा सकता है।

2) एक बार टेम्पलेट या आंशिक रूप से प्रस्तुत किया गया है, और डेटा को अद्यतन करने की आवश्यकता है, यह बैंडविड्थ पर एक नाली है, जो पूरी तरह से एचटीएमएल को भेजने के बजाय जेएसओएन को क्लाइंट को भेजता है।

क्या सर्वर-साइड टेम्पलेट प्रतिपादन के साथ ये वास्तविक समस्याएं हैं?

उत्तर

7

मुझे लगता है कि यह वास्तव में आपके द्वारा लिखे गए एप्लिकेशन के प्रकार पर निर्भर करता है। यदि आपके पास एक ऐसा पृष्ठ है जो अधिकतर व्यक्तिगत पृष्ठों परोसता है, और आपके विशिष्ट सीआरयूडी/एमवीसी मोल्ड में फिट बैठता है, तो यह कोई मुद्दा नहीं हो सकता है। हालांकि, अगर आप AJAX के एक टन के साथ कुछ गतिशील लिख रहे हैं, तो यह एक समस्या है :-)

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

मुझे नहीं लगता/जेड उस तरह के क्लाइंट साइड बाइंडिंग का समर्थन करता है। अच्छी खबर यह है कि कुछ लोकप्रिय टेम्पलेटिंग भाषाएं हैं जो सर्वर पर और ब्राउज़र में दोनों काम करती हैं। दो मैं के बारे में पता कर रहे हैं:

मैं, एक्सप्रेस के साथ प्लेटों का उपयोग कर किसी से नहीं देखा है के रूप में यह जो है एक तरह से flatironjs परियोजना के अंतर्गत आता है यह अपने बढ़ते ढांचे पर जा रहा है। वहाँ उदाहरण के टन एक्सप्रेस के साथ मूंछ और EJS का उपयोग कर के वहाँ बाहर हैं:

एक तरफ ध्यान दें पर, यहाँ Joyent की साइट पर नोड के लिए templating संकुल की एक सूची है:

https://github.com/joyent/node/wiki/modules#wiki-templating

मेरे सुझाव EJS साथ शुरू करने के लिए है - यह एक छोटे से पृथ्वी पर अधिक है इसके गैर-एचएएमएल-एस्क सिंटैक्स के साथ, ग्राहक और सर्वर बाध्यकारी का समर्थन करता है, और एक्सप्रेस स्टैक में अच्छी तरह से स्वीकार किया जाता है।

हैप्पी कोडिंग!

+0

धन्यवाद, यह उपयोगी था। "सूची बाइंडिंग" द्वारा, क्या आपका मतलब है "डेटा के साथ पॉपुलटिंग"? साथ ही, आप केवल क्लाइंट-साइड टेम्पलेट्स के साथ काम करने का सुझाव देते हैं, ताकि किसी को सर्वर के लिए उन्हें फिर से लिखना न पड़े। तो आपने क्लाइंट और सर्वर दोनों पर काम करने वाली templating भाषाओं को क्यों चुना है? – Randomblue

+0

जब मैं सूची बाइंडिंग कहता हूं, मेरा मतलब डेटा की एक सूची (आमतौर पर जेसन/एक्सएमएल, पेजेड) के लिए अनुरोध करना है, उस डेटा संरचना को टेम्पलेट में लागू करना, और क्लाइंट को एचटीएमएल प्रस्तुत करना। मैं यह सुझाव नहीं दे रहा हूं कि आप केवल क्लाइंट साइड टेम्पलेट्स का उपयोग करें - कारण मैंने उन दोनों को इंगित किया जो दोनों पर काम करते हैं कि मैं उन्हें दोनों मामलों में उपलब्ध करना चाहता हूं। –

+0

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

1

एक अन्य महत्वपूर्ण बात है। आपकी वेबसाइट के उद्देश्य के आधार पर। आपको एसईओ पर ध्यान देना पड़ सकता है या नहीं।

सरल शब्द में, सर्वर से उत्पन्न सामग्री खोज इंजन द्वारा अनुक्रमणित है। अन्य नहीं। चूंकि खोज इंजन क्रॉलर क्लाइंट-साइड सामग्री के बारे में परवाह नहीं करते हैं।

+1

Google बॉट अब जावास्क्रिप्ट चलाता है, इसलिए ग्राहक द्वारा प्रदान की जाने वाली सामग्री को Google द्वारा अनुक्रमित किया जा सकता है। – Matt

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

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