2012-02-21 12 views
8

में पार्स(), और प्रस्तुत करना() क्या बीच का अंतर है: नई mustache.js संस्करण 0.5 मेंअंतर(), mustache.js

Mustache.compile(), Mustache.parse(), और Mustache.render()

। 0, और शायद बोनस अंक के लिए आप हमें बता सकते हैं कि पार्सिंग और संकलन के बीच क्या अंतर सामान्य है।

+1

स्रोत का प्रयोग करें, ल्यूक। – Tomalak

+14

स्रोत पढ़ें, मेरे पास है, लेकिन फिर भी, अंतर देखें, मैं नहीं कर सकता। – alnafie

उत्तर

15

संपादित

एक API change introduced in version 0.8.0 साथ

, compile() विधि parse() में एकीकृत किया गया। टेम्पलेट्स को मैन्युअल रूप से संकलित करने की आवश्यकता नहीं है।


Mustache.parse()

वाक्य रचना टेम्पलेट पार्स करके उसे से एक JavaScript फ़ंक्शन शरीर (एक स्ट्रिंग) पैदा करता है। उस प्रक्रिया के दौरान यह टेम्पलेट में आने वाली किसी वाक्यविन्यास त्रुटियों की सूचना देता है।

Mustache.compile()

एक वास्तविक जावास्क्रिप्ट समारोह बनाने के लिए समारोह शरीर एक सफल parse() से लौटे उपयोग करता है। बनाए गए फ़ंक्शन को फिर से उपयोग के लिए कैश में रखा गया है।

Mustache.render()

किसी दिए गए टेम्पलेट (एक है कि compile() द्वारा बनाया गया था) और इसे वास्तविक डेटा पर लागू होता है के लिए उपयुक्त समारोह ले जाता है। यह परिणाम स्क्रीन पर दिखाया गया परिणाम बनाता है।

+0

धन्यवाद टोमालक! मैं देख सकता हूं कि प्रतिपादन से पहले संकलन कभी-कभी प्रदर्शन के लिए समझ में आता है ?, लेकिन मैं ऐसी स्थिति के बारे में नहीं सोच सकता जहां यह पार्स का उपयोग करने के लिए समझ में आता है। क्या आप एक उदाहरण दे सकते हैं जहां यह होगा? – alnafie

+0

@ एनाफाई पार्सिंग हमेशा एक मनमाने ढंग से स्ट्रिंग (मूंछ सिंटैक्स का अनुपालन करने वाला होता है) को बदलने में पहला कदम होता है जो कंप्यूटर पर कार्य कर सकता है। जब ब्राउज़र द्वारा पढ़ा जाता है तो यह आपकी जावास्क्रिप्ट स्रोत कोड फ़ाइलों के साथ बिल्कुल होता है। आपके द्वारा दिए गए इनपुट को पार्स किए बिना, कोई भी कंप्यूटर कुछ भी नहीं कर सकता है। moustache.js टेम्पलेट को एक जावास्क्रिप्ट फ़ंक्शन में संकलित करता है जो टेम्पलेट कहता है, और कुछ और नहीं करता है। अंत में यह हर बार जब आप कॉल ("प्रस्तुत करें") टेम्पलेट की व्याख्या करने से बहुत तेज़ दौड़ेंगे। – Tomalak

+0

एक पार्स चरण का खुलासा करने से कुछ ऐसा भी मिलता है जो एक memcache में चिपकने और आपके सामने के अंत में उपयोग करने के लिए समझ में आता है। –

1

बस एक टिप Mustache.parse(template) वैकल्पिक है और टेम्पलेट के भविष्य के उपयोग को गति देता है। यह तब उपयोगी होता है जब आप अपने टेम्पलेट को बड़े (बड़े) डेटा के सेट के साथ पुन: उपयोग करना चाहते हैं। यदि यह मामला Mustache.render() पर कॉल नहीं है, जो अंतिम परिणाम उत्पन्न करता है, तो पर्याप्त है।