2013-02-26 65 views
5

मैंने this tutorial का पालन किया और मैंने इसे इसके साथ बनाया: http://x111.meteor.com/ लेकिन जैसा कि आप देख सकते हैं कि लोडिंग बहुत धीमी है, क्योंकि उल्का ग्राहक पक्ष से डेटा लोड करता है।उल्का में सर्वर पक्ष पर टेम्पलेट्स को प्रस्तुत करने के लिए कैसे?

मैं इस त्रुटि मिलती है जब मैं वैश्विक TemplateMeteor.isServer अंदर उपयोग करना चाहते हैं:

ReferenceError: Template is not defined 
at app/products.js:56:3 ... 

मैं सर्वर साइड से टेम्पलेट्स कैसे निभा सकते हैं तो मैं ग्राहक के लिए प्रतीक्षा करने की जरूरत नहीं है?

+0

उल्का की * पूरे मुद्दे * तार पर * डेटा है * - पूरा नहीं करते एचटीएमएल, डेटा – Swadq

उत्तर

1

टेम्पलेट सर्वर के साथ परोसा जाता है भले ही कोड क्लाइंट एचटीएमएल में है। वे लंबे समय तक लेते हैं क्योंकि पहले लोड पर ग्राहक को उल्का संग्रह डाउनलोड करने का चरण होता है।

अद्यतन: मुझे पता है कि यह बिल्कुल ठीक नहीं है, लेकिन अंतराल का मूल कारण टेम्पलेटिंग सिस्टम नहीं है।

मूल समस्या आपके ब्राउज़र & सर्वर के बीच विलंबता होगी। आपको इस अंतराल को हटाने के लिए सर्वर को आपके पास रखने की आवश्यकता है/इसे किसी भी वेब सर्वर के साथ छोटा कर दें।

यदि आप एक सर्वर को करीब नहीं प्राप्त कर सकते हैं तो आप लोड हो सकते हैं ... संदेश इसलिए उपयोगकर्ता जानते हैं कि डेटा जल्द ही उपलब्ध होगा।

{{#unless CartItems.count}} 
    <tr> 
     <td colspan="4">Loading...</td> 
    </tr> 
{{else}} 
    {{#each CartItems}} 
     <tr> 
      <td>{{Name}}</td> 
      <td>${{Price}}</td> 
      <td>{{Quantity}}</td> 
      <td>${{Total}}</td> 
     </tr> 
    {{/each}} 
{{/unless}} 
+0

सच की सेवा? मेरा मतलब है कि यह सर्वर में मूल होना चाहिए .. lol: डी पृष्ठों को अद्यतन करने से अधिकांश मामलों में गतिशील पृष्ठों की सेवा करना अधिक महत्वपूर्ण है। – Adam

+0

आपको सभी डेटा क्लाइंट पक्ष लोड नहीं करना चाहिए। किसी दिए गए टेम्पलेट के लिए आपको जो चाहिए उसे इसके लिए पग किया जाना चाहिए। यह आपके सर्वर-साइड प्रकाशन फ़ंक्शन द्वारा प्रतिबंधित किया जा सकता है। –

+0

उसके पास केवल डेटा की 3 प्रविष्टियां हैं, मुझे लगता है कि यह सर्वर और ब्राउज़र के बीच एक विलंबता की बात है। @ एडम यदि आप इसे अपने लोकहोस्ट पर चलाते हैं तो क्या आपको एक ही समस्या मिलती है? – Akshat

1

वर्तमान में कोई अंतर्निहित तरीका यह है है, लेकिन serverside टेम्पलेट प्रतिपादन जोड़ने की योजना बनाई सुविधा है (हालांकि मैं अभी तक रोडमैप पर नहीं देखते हैं):

इस संस्करण स्पाइडर योग्य विशेष रूप से खोज इंजन के लिए है। मीटियर का भविष्य संस्करण एचटीएमएल पृष्ठ लोड पर वेब ब्राउज़र पर HTML भेज देगा। उल्का templating प्रणाली विशेष रूप से इस डिजाइन मामले का समर्थन करने के लिए डिजाइन किया गया था।

(http://meteor.com/faq/can-meteor-serve-static-html)

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

1

आप एक Node.js ढांचे में कार्यक्षमता के इस प्रकार के लिए देख रहे हैं मैं Derby.JS http://derbyjs.com/

+0

+1 अगर यह अभी भी अल्फा डर्बी शानदार है – jusynth

+4

लेकिन उल्का के बारे में यह सवाल! – neftedollar

6

का उपयोग कर this प्रयास करें की सिफारिश करेंगे। यह पैकेज उल्का में सर्वर साइड हैंडलबार्स के लिए समर्थन जोड़ता है। यह मुख्य रूप से सर्वर साइड ईमेल एचटीएमएल के लिए स्टॉप गैप के रूप में लक्षित है जब तक कि मीटरी सर्वर साइड रेंडरिंग समर्थन जारी नहीं करता है।

> mrt add handlebars-server