2010-03-01 10 views
39

संभव डुप्लिकेट:
Why minify assets and not the markup?कई साइटें सीएसएस और जावास्क्रिप्ट को कम क्यों करती हैं लेकिन HTML नहीं?

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

+4

Google.com करता है ... – Ally

+2

http://stackoverflow.com/questions/1306792/why-minify-assets-and-not-the-markup – UmYeah

+3

@ केवल - Google.com के मुखपृष्ठ के लिए प्रासंगिक क्या है औसत साइट पर लागू नहीं है! –

उत्तर

59

क्योंकि यदि आप चीजें ठीक से कर रहे हैं तो आप एचटीएमएल gzipped की सेवा कर रहे हैं, इसलिए एचटीएमएल minification - व्हाइटस्पेस के कम लटकते फल - यह सब प्रासंगिक नहीं है। एचटीएमएल में खनन के लिए बहुत सारे आसान लक्ष्य (उदा। परिवर्तनीय नाम) नहीं हैं, जो सीएसएस और जावास्क्रिप्ट में मौजूद हैं। एचटीएमएल की अधिकांश सामग्री वास्तविक सामग्री पृष्ठ की सामग्री है, जिसे संभवतः छोटा नहीं किया जा सकता है (और, जैसा कि अन्य ने इंगित किया है, लगभग निश्चित रूप से आपके सीएसएस या जेएस से अधिक बार भिन्न होता है)।

+4

ध्यान दें कि अक्सर सीएसएस या जावास्क्रिप्ट को कम करने में उन फ़ाइलों को विलय करना शामिल है जो आपके द्वारा दिए गए कारणों से HTML फ़ाइल के साथ नहीं किए जा सकते हैं। –

7

मुझे नहीं लगता कि एचटीएमएल में खनन के लिए इतना कमरा है: आप सफेद रिक्त स्थान और लाइन ब्रेक को हटा सकते हैं, लेकिन अनिवार्य रूप से, यह वास्तव में पेज की संरचना में शामिल किए बिना है।

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

एचजीएमएल एचटीएमएल का विकल्प संभवतः किसी भी तरह से कम करने की आवश्यकता को समाप्त करता है, खासकर जब यह आमतौर पर एचटीएमएल के लिए सक्षम होता है, जबकि यह (अनावश्यक रूप से) हमेशा सीएसएस और जेएस फ़ाइल प्रकारों के लिए नहीं होता है।

47

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

+4

सर्वोत्तम उत्तर आईएमओ। –

+3

स्टेटिक वेबसाइटों को केवल एक बार छोटा करने की आवश्यकता होगी। लेकिन इसके अतिरिक्त, गतिशील रूप से जेनरेट किए गए HTML को भी आसानी से छोटा किया जाएगा। जब एचटीएमएल सामग्री बनाई जाती है, तो आप पहले स्थान पर सफेद जगह नहीं डालेंगे। यह वास्तव में सफेद जगह के बिना एचटीएमएल उत्पादन करने के लिए तेजी से होगा। –

3

एचटीएमएल सामग्री gzipped होने के कारण अधिकांश संपीड़न का ख्याल रखता है, इसके शीर्ष पर खनन करने से बैंडविड्थ का एक बड़ा सौदा पूरा नहीं होता है।

जावास्क्रिप्ट आप निर्माण के हिस्से के रूप में छोटा कर सकते हैं, संपूर्ण HTML सामग्री के साथ ऐसा होने का एकमात्र तरीका हर टुकड़ा को कम करना होगा (क्या यह उत्पन्न होता है?) या इसे पूरे समय को कम करने के लिए (काम करने के लिए दुःस्वप्न ? सीमांत बैंडविड्थ, लाभ: आसान डिबग करने के लिए, पर काम करने के लिए आसान आसान उत्पन्न करने के लिए, सुंदर मेरे स्रोत दृश्य खिड़की में पर)

यह बनाम लाभ, लागत शुल्क नहीं लिया जाता।

5

मुख्य रूप से क्योंकि जावास्क्रिप्ट फ़ाइलें और सीएसएस स्टाइलशीट अक्सर स्थैतिक फाइलें होती हैं जो तैनाती पर नहीं बदलेगी। दूसरी तरफ, मार्कअप अक्सर फ्लाई पर उत्पन्न होता है (कम से कम डेटाबेस संचालित वेब ऐप्स के साथ), और "पेज" की संख्या आमतौर पर बड़ी और गतिशील होती है, जो खनन के लाभों को इसके लायक से अधिक काम करती है।

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