2012-05-04 24 views
14

Markdown एचटीएमएल से लिखना और संपादित करना आसान लगता है। सभी एचटीएमएल संपादकों ने मुझे अनावश्यक जंक का एक टन आउटपुट देखा है। मार्कडाउन क्लीनर लगता है।क्या मुझे संग्रहीत मार्कडाउन को HTML में परिवर्तित करना चाहिए, या क्या मुझे बस HTML स्टोर करना चाहिए?

यहां मैं क्या करने की सोच रहा हूं: डेटाबेस में मार्कडाउन संग्रहीत करना, इसे PHP Markdown के साथ HTML में परिवर्तित करना, फिर वेब ब्राउज़र पर आउटपुट करना।

एक समस्या यह है कि इसे हर बार एक पृष्ठ का अनुरोध किया जाना होगा। यह कुछ हद तक महंगा लगता है।

क्या यह एक अच्छा विचार है? या ऐसा करने के लिए एक और अधिक प्रभावी तरीका है?

उत्तर

28

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

+0

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

+1

एक विकल्प के रूप में, आप परिवर्तित एचटीएमएल को भी कैश कर सकते हैं, डीबी को हिट सीमित कर सकते हैं और इसे स्टोर करने की आवश्यकता है। बेशक यह आपके आवेदन पर निर्भर करता है :) – neolaser

1

आप दोनों स्टोर कर सकते हैं। संग्रहीत मार्कडाउन उपयोगी होता है अगर इसे कई बार संपादित किया जाना चाहिए, या यदि HTML अनुवाद में कोई अन्य या बेहतर मार्कडाउन विकसित किया गया है। संग्रहीत एचटीएमएल उपयोगी है, जैसा कि आप कहते हैं, इसे बार-बार पुन: उत्पन्न करने से बचने के लिए।

7

अपनी साइट से वापस खड़े रहें और खुद से पूछें कि यह वास्तव में "महंगा" कैसे होगा। क्या आप प्रति दिन 1,000 से अधिक यूनिकों की सेवा करते हैं? वास्तव में, क्या यह गुब्बारा जा रहा है? इन सभी प्रकार के प्रश्नों के साथ, उत्तर स्पष्ट कट नहीं है। उदाहरण के लिए, जब मैं एक अंतरराष्ट्रीय बैंक के लिए वेबसाइट बना रहा था, तो एक गैर-न्यूनतम सीएसएस दस्तावेज़ बैंडविड्थ प्रति दिन 1 गीगाबाइट जोड़ सकता था। हालांकि, जब मैं अपनी पोर्टफोलियो साइट का निर्माण कर रहा हूं, तो मुझे उस ट्रैफ़िक के एक अंश की उम्मीद है।

मैं निश्चित रूप से अक्षम अक्षमता कोड की वकालत नहीं कर रहा हूं .... बस ध्यान रखें कि "लागत" को वास्तव में प्रक्रिया समय के निष्पादन के रूप में मापा जाना चाहिए, न केवल प्रक्रिया।

यदि आप वास्तव में चिंतित हैं, तो पहले से रिकॉर्ड करें- और बाद में PHP मार्कडाउन प्रक्रिया के निष्पादन के आसपास। फिर, ए/बी फैशन में कई बार सर्वर लोड ट्रैक करें। संख्या झूठ नहीं बोलती है।

+0

क्षमा करें, अगर यह मूर्खतापूर्ण लगता है ... रिकॉर्ड क्या है? बैंडविड्थ? अनुरोध से पहले और बाद में डिस्क स्थान? – xameeramir

+1

@ बाउंटीमेन, कोडिंग में एक सामान्य प्रैक्टिस ऑपरेशन से पहले और उसके बाद एक टाइमस्टैम्प गूंज (या लॉग) करना है। इस तरह, आप बता सकते हैं कि एक विशेष कार्य को पूरा करने के लिए कितना समय आवश्यक है। यूआई विकास में आप आमतौर पर उस चरण को छोड़ सकते हैं और केवल ब्राउज़र के डायग्नोस्टिक टूल्स का उपयोग कर सकते हैं, लेकिन पीएचपी जैसी बैक-एंड भाषाओं में, बस दो टाइमस्टैम्प में फेंकना और वहां से काम करना सबसे आसान लग रहा है। – bpeterson76

0

मैंने हाल ही में एक परियोजना पूरी की है जो आप पूछ रहे हैं। डेटाबेस में पूर्ण उड़ाए गए HTML को स्टोर करने के बजाय, मैंने एक प्रोप्रायटरी एपीआई का उपयोग करके फाइल सिस्टम पर चिह्नित डाउन एचटीएमएल स्टोर करने का विकल्प चुना, जो मोंगोडीबी की तरह है। स्टोरेज चिह्नित-डाउन बनाम पूर्ण-उड़ा हुआ है, फाइल सिस्टम पर पैर प्रिंट बहुत छोटा है, और यदि आपको कभी भी कच्चे मार्कडाउन को देखने की आवश्यकता होती है, तो इसे पढ़ने में बहुत आसान होता है। जब कोई उपयोगकर्ता HTML को संपादित करता है, तो मैं पूरी तरह से उड़ाता हूं ताकि वे देख सकें कि यह कैसा दिखता है।

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

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