2010-10-29 4 views
5

मेरे पास गतिशील रूप से जेनरेट किए गए HTML के लगभग 10 मानक ब्लॉक हैं जो मेरी साइट (सूचनात्मक साइडबार) पर पृष्ठों के एक बड़े प्रतिशत पर शामिल होते हैं।वेग: क्या अलग-अलग पृष्ठों पर कई बार एक डीआईवी ब्लॉक के लिए एक वेग मैक्रो या # शामिल (...) कथन का उपयोग करना बेहतर है?

मैं # शामिल बयान का उपयोग कर सकता हूं या उन्हें मैक्रोज़ के रूप में परिभाषित कर सकता हूं, दोनों काम करेंगे।

बेहतर क्या है? मैं Velocity के लिए नया हूँ और जेएसपी से एक साइट माइग्रेट कर रहा हूँ।

एक बनाम दूसरे का उपयोग क्यों करें? # अंतर्निहित क्यों है जब नो-एर्ग मैक्रो() समान होता है? क्या वे किसी कैशिंग/मेमोरी परिप्रेक्ष्य से अलग तरीके से संभाले जाते हैं?

उत्तर

6

यदि वे स्थिर ब्लॉक हैं (उनमें कोई वीटीएल कोड नहीं है), तो # उन्हें अलग-अलग संसाधनों के रूप में शामिल करना निश्चित रूप से बेहतर प्रदर्शन करेगा। यहां तक ​​कि यदि वे गतिशील हैं (वीटीएल कोड है), तो आप # शामिल के बजाय #parse का उपयोग कर सकते हैं और अभी भी एक मैक्रो से बेहतर प्रदर्शन प्राप्त कर सकते हैं। मैं यह भी जानकर आश्चर्यचकित नहीं होगा कि # परिभाषित वीटीएल ब्लॉक मैक्रोज़ की तुलना में तेज़ हैं, हालांकि मैंने इसका परीक्षण नहीं किया है। मैक्रोज़ महान और बहुत उपयोगी हैं, लेकिन लोग कभी-कभी उनका दुरुपयोग करते हैं या उनका दुरुपयोग करते हैं।

#parse और #include का नकारात्मक पक्ष यह है कि आपको अधिक अलग फ़ाइलों को बनाए रखना है, लेकिन यह बेहतर गति के लिए कीमत है। #define उन कोड ब्लॉक के लिए बहुत अच्छा है जिन्हें तर्क की आवश्यकता नहीं है और/या संदर्भ के रूप में पारित होने की आवश्यकता है, लेकिन आपको केवल उस टेम्पलेट में # परिभाषित ब्लॉक का उपयोग करना चाहिए जो उन्हें परिभाषित करता है या चीजें भ्रमित हो सकती हैं।

मैक्रोज़ महान हैं कि वे पैरा लेते हैं और वैश्विक रूप से परिभाषित किए जा सकते हैं, और वैश्विक रूप से वे सबसे अच्छा प्रदर्शन करते हैं और अधिक समझ में आते हैं। जब मैं उचित विकल्प प्राप्त करता हूं तो मैं आम तौर पर स्थानीय मैक्रोज़ से बचने की कोशिश करता हूं। और जब मैं किसी भी स्थानीय मैक्रोज़ से सफलतापूर्वक बचने के लिए, मैं एक छोटी गति बढ़ाने के लिए उनके लिए समर्थन बंद कर देता हूं।

+0

उत्कृष्ट स्पष्टीकरण के लिए बहुत धन्यवाद, यह वास्तव में मेरे दिमाग में अंतर को स्पष्ट करने में मदद करता है। –

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