2012-12-06 13 views
8

मुझे सर्वर और क्लाइंट साइड टेम्पलेटिंग का विचार मिलता है, लेकिन dust.js मुझे थोड़ा उलझन में डाल देता है। टेम्पलेट क्लाइंट साइड टेम्पलेटिंग के रूप में dustjs-linkedin का उपयोग कैसे करें?

अधिकार प्रस्तुत करना

  1. complie टेम्पलेट
  2. लोड टेम्पलेट
  3. :

    आदेश ग्राहक के पक्ष templating के लिए dust.js का उपयोग करने के लिए आपको तीन चरणों की आवश्यकता है?

    लेकिन टेम्पलेट कहां से आते हैं? मैंने दो अलग-अलग तरीकों को देखा:

    1. <script> template <script> 
    2. <div> template </div> 
    

    ... दोनों ही डोम में हैं। क्या सही है?

    मुझे यह भी पता है कि आप टेम्पलेट को AJAX के माध्यम से लोड कर सकते हैं, इसलिए टेम्पलेट को डोम में नहीं देखा जाएगा, लेकिन मुझे नहीं पता कि यह कैसे करना है।

    इसके अलावा, मैं वर्तमान में जेड को एक्सप्रेस व्यू इंजन के रूप में उपयोग कर रहा हूं। क्या dust.js पर स्विच करना आवश्यक है? क्या फायदा है?

उत्तर

11

यह लिंक्डइन धूल जे एस विकि पृष्ठ कि आपके सवालों के जवाब और बहुत अच्छा उदाहरण है सकते हैं फ़ाइल जिसे आप <script> टैग से अपने पृष्ठ में जोड़ सकते हैं और फिर dust.render अपना टेम्पलेट प्रस्तुत करने के लिए कॉल करें। यहाँ एक उदाहरण है:

एक टेम्पलेट फ़ाइल में
  1. लिखने निम्नलिखित कोड और यह कमांड लाइन में dustc sample.tl द्वारा sample.js को

    <p>Hi {firstName} {lastName}</p> 
    
  2. संकलन sample.tl sample.tl के रूप में सहेज सकते हैं या NodeJS द्वारा dust.compile("your_template_code", "template_name") का उपयोग टेम्पलेट संकलन और (sample.js) JavaScript फ़ाइल में उत्पादन को बचाने के लिए या आप duster.js का उपयोग को देखने के लिए और संकलन टेम्पलेट्स: https://github.com/dmix/dusterjs

  3. अपने html में sample.js जोड़ें:

    <script type="text/javascript" src="sample.js"></script> 
    

    यह भी dust.cache करने के लिए अपने टेम्पलेट में दर्ज किए जाएंगे।

  4. आपकी जावास्क्रिप्ट में

    :

    var your_json = {firstName:'James', lastName:'Smith'}; 
    
    dust.render('sample', your_json, function(err, out){ 
    
        your_dom_element.innerHTML = out; 
    
    }); 
    

    dust.render विधि से ऊपर का परिणाम हो जाएगा <p>Hi James Smith</p>

    तो तुम dust.render को 3 तर्क पारित करने के लिए की जरूरत है: dust.render(template_name, json, callback)

+0

मैं लिंक्डइन-धूल और एक्सप्रेस का उपयोग कर रहा हूं, मैं क्लाइंट साइड पर dust.render तक कैसे पहुंच सकता हूं? मुझे लगता है कि मुझे एक जेएस फ़ाइल शामिल करनी है, हालांकि क्या मुझे इसे मैन्युअल रूप से कटे हुए सामग्री के रूप में जोड़ना है या क्या धूल में फ़ाइल के लिए अनुरोध हैंडलर शामिल है? – James

+0

हां आपको धूल टेम्पलेट प्रस्तुत करने के लिए अपने पृष्ठ पर dust-core.js जोड़ने की आवश्यकता है। आपको संकलित धूल टेम्पलेट फ़ाइलों को भी जोड़ने की आवश्यकता है। https://github.com/linkedin/dustjs/blob/master/dist/dust-core.js –

0

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

दूसरी ओर आप सर्वर में धूल का उपयोग कर सकते हैं, (गैंडो या नोडजेज़ का उपयोग करके)। इस मामले में आप सर्वर में टेम्पलेट संकलित और प्रस्तुत करने जा रहे हैं ताकि ब्राउजर एचटीएमएल प्राप्त कर सके। http://linkedin.github.com/dustjs/

लेकिन यहाँ आपके सवालों के जवाब:

हाँ, आप जो एक जावास्क्रिप्ट हो जाता है अपने धूल टेम्पलेट संकलन करने की जरूरत

+2

तक अगर आप प्रदर्शन में दिलचस्पी रखते हैं तो यह खराब सलाह है। यदि आपके टेम्पलेट्स एक बार संकलित नहीं होते हैं, तो यह बेहतर होता है और फिर क्लाइंट-साइड को संकलित करने के बजाय सीधे संकलित टेम्पलेट्स को क्लाइंट को सेवा प्रदान करते हैं। इस तरह आपको क्लाइंट को dust.js भेजने की आवश्यकता नहीं है, और क्लाइंट को आपके टेम्पलेट्स को संकलित करने में समय बिताने की आवश्यकता नहीं है। – fabspro

+1

बिल्ड या विकास के हिस्से के रूप में प्रीकंपाइल करना सबसे अच्छा है, और फिर क्लाइंट पर मॉडल के साथ संकलित करना सबसे अच्छा है। इस तरह आप अपने टेम्पलेट्स के स्थानीय कैशिंग के लिए अनुमति दे सकते हैं। – pilau