2011-12-30 10 views
5

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

क्यों न केवल इंडेंट के लिए टैब का उपयोग करें? क्या यह अधिक लागत प्रभावी नहीं होगा: 1 char (\ t) बनाम उदाहरण 4 वर्ण (रिक्त स्थान)?

मैं थोड़ा टैब और प्रदान की गई मार्कअप की तुलना में आकार का उपयोग करने के एक asp.net-पेज परिवर्तित करके प्रयोग किया था। केवल एक आंशिक दृश्य की सफेद जगह को बदलकर 22kb आकार का पृष्ठ 1 9, 4kb तक घटाया जा सकता है -> यह 12% की कमी है। सभी इंडेंटेशन बदलना, पेज 16,7 केबी आवंटित हो गया - 24% कमी! (क्रोम देव उपकरणों और फ़िडलर इस्तेमाल किया पुष्टि करने के लिए)

मेरे तर्क ध्वनि है? क्या एचटीएमएल के इंडेंटेशन के लिए टैब का इस्तेमाल प्राथमिक होना चाहिए? क्या रिक्त स्थान (जैसे विदेशी ब्राउज़रों के साथ संगतता) का उपयोग करने का कोई कारण है?

ps। Stackoverflow रिक्त स्थान का भी उपयोग करता प्रतीत होता है। टैब का उपयोग करने के लिए SO मुख्य पृष्ठ को कनवर्ट करना 9% की कमी देता है। क्या यह मान्य अवलोकन है? यदि हां, तो उन्होंने टैब का उपयोग क्यों नहीं किया है?

+1

'\ t' वास्तव में एक char है। –

+2

आप संपीड़न के लिए लेखांकन नहीं कर रहे हैं - जब यह चालू होता है, तो ये अंतर बहुत छोटे होते हैं। – Oded

+1

और ईवेंट टैब का उपयोग नहीं करने से अधिक पेज आकार कम हो जाएगा। एचटीएमएल में इंडेंटेशन की अवधारणा नहीं है। प्रोग्रामर इंडेंट करते हैं। वास्तव में अनुकूलित साइटें न तो टैब और न ही रिक्त स्थान का उपयोग नहीं करती हैं। – BigMike

उत्तर

5

स्टैक ओवरव्लो HTTP Compression का उपयोग करता है - जब यह चालू होता है, तो रिक्त बनाम टैब का उपयोग करने के बीच अंतर नीचे चला जाता है - बहुत कुछ।

आप विश्वसनीय परिणाम के लिए संकुचित संस्करणों के खिलाफ run your tests की जरूरत है।

आप जब एक ब्राउज़र संपीड़न योजनाएं सर्वर का समर्थन करता है का समर्थन नहीं करता है, हालांकि मामलों के लिए एक बिंदु है।

+1

ठोस उत्तर प्रदान करने के लिए धन्यवाद। यह अच्छा सीखने का अनुभव रहा है। विकिपीडिया लेख से आपने लिंक किया: "Google इंजीनियरों अरविंद जैन और जेसन ग्लासगो का कहना है कि पृष्ठ लोड समय बढ़ने के कारण प्रति दिन 99 से अधिक व्यक्ति बर्बाद हो जाते हैं जब उपयोगकर्ताओं को संपीड़ित सामग्री प्राप्त नहीं होती है" – Fdr

2

पहली बात: एचटीएमएल खरोज करने का एक नियम नहीं है। यह कोड पठनीयता और कार्यक्रम की संरचना के लिए प्रोग्रामर द्वारा किया जाता है। अधिक कभी हम संपीड़न द्वारा इंडेंट्स और सफेद रिक्त स्थान द्वारा लिया गया आकार कम कर सकते हैं।

कम करें/कॉम्पैक्ट/संपीड़ित HTML: एचटीएमएल कोड को संक्षिप्त करने, कई बाइट डेटा बचाने के लिए और डाउनलोड करने, पार्स करने, और निष्पादन समय में तेजी लाने के कर सकते हैं।

StackOverflow HTTP संपीड़न का उपयोग करता है

को कम करने के लिए HTML सीएसएस और जे एस को कम करने के लिए उन लोगों के रूप में एक ही लाभ हैं: नेटवर्क प्रतीक्षा अवधि को कम, संपीड़न को उन्नत बनाने और तेजी से ब्राउज़र लोड हो रहा है और निष्पादन। इसके अलावा, एचटीएमएल में अक्सर इनलाइन जेएस कोड (टैग में) और इनलाइन सीएसएस (टैग में) होता है, इसलिए इन्हें भी कम करने के लिए उपयोगी होता है।

नोट: यह नियम प्रयोगात्मक है और वर्तमान में सख्त HTML अच्छी तरह से गठित होने के बजाय आकार में कमी पर केंद्रित है। नियम के भविष्य के संस्करणों में भी शुद्धता को ध्यान में रखा जाएगा। वर्तमान व्यवहार के विवरण के लिए, पेज स्पीड विकी देखें।

युक्ति: जब आप किसी पृष्ठ संदर्भित HTML फ़ाइलों के खिलाफ पृष्ठ गति चलाने के लिए, यह स्वचालित रूप से पृष्ठ गति एचटीएमएल कॉम्पैक्टर फाइलों पर (जो बारी में किसी भी इनलाइन JavaScript और सीएसएस के लिए JSMin और cssmin.js लागू होगा) चलाता है और एक विन्यास योग्य निर्देशिका में minified आउटपुट बचाता है।

देखें: http://code.google.com/speed/page-speed/docs/payload.html#MinifyHTML

1

क्यों नहीं बस इंडेंट करने के लिए टैब का उपयोग? क्या यह अधिक लागत प्रभावी नहीं होगा: 1 char (\ t) बनाम उदाहरण 4 वर्ण (रिक्त स्थान)?

आप डाउनलोड की एचटीएमएल आकार के बारे में चिंतित हैं, आप टैब-बनाम-रिक्त स्थान पर उपद्रव नहीं होगा - आप हूँ compress your HTML as it goes over the wire and minify your markup, CSS, and Javascript, जो असली बचत प्रदान करते हैं और अपने खुद के कोडिंग दिशा निर्देशों के साथ हस्तक्षेप नहीं करते।

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