समग्र साइट के प्रदर्शन में सुधार (डाउनलोड करने और गति प्रदान करने) के संदर्भ में वहाँ के बाद दो सर्वोत्तम प्रथाओं के बीच एक विरोधाभास प्रतीत होता है:सर्वोत्तम प्रथाओं - केवल आपको आवश्यक सीएसएस डाउनलोड करें, या एक मिनीफिकेशन प्रक्रिया का उपयोग करें?
केवल नीचे सीएसएस है कि आप के लिए पेज से किया जा रहा जरूरत लाना देखी। (क्योंकि बहुत से सीएसएस नियम धीमे प्रतिपादन का कारण बनते हैं)
हमेशा सीएसएस को कम करें और इसे एक फ़ाइल में गठबंधन करें। (क्योंकि अधिक अनुरोध का मतलब धीमी पेज लोड)
अब कहते हैं कि मैं नियम का पालन करने का फैसला 1.
निम्न समस्याओं आए:
क्या होगा यदि 2 पृष्ठों को साझा सीएसएस नियमों की 1 सेट ?
इस मामले में, मुझे उन नियमों को एक अलग फ़ाइल में रखना होगा और दोनों पृष्ठों से उस फ़ाइल को संदर्भित करना होगा।
हालांकि, अगर मैं इन "साझा नियम" का एक बहुत कुछ है करने के लिए शुरू, मैं प्रत्येक पृष्ठ से अलग फ़ाइलों का एक बहुत संदर्भित खत्म हो सकता है, और इस तरह, नियम को तोड़ने 2.
उदाहरण के लिए, पेज एक सीएसएस 1 और 2 पर निर्भर हो सकता है, जबकि पृष्ठ बी और सी दोनों सीएसएस 2 पर निर्भर करते हैं और पेज डी सीएसएस पर निर्भर करता है 1.
इस परिदृश्य में, प्रति पेज बिल्कुल एक सीएसएस या यहां तक कि एकाधिक सीएसएस के प्रति पृष्ठ असंभव है, चूंकि कुछ पृष्ठों को कुछ सीएसएस फ़ाइलों को अन्य पृष्ठों के साथ साझा करने की आवश्यकता होगी।
लेकिन क्या हम प्रत्येक पृष्ठ के लिए सभी सीएसएस को एक अलग प्रति पृष्ठ सीएसएस फ़ाइल में संयोजित करके इस समस्या को हल नहीं कर सकते?
हम कर सकते थे, लेकिन इससे अन्य समस्याएं पैदा होंगी।
यदि दो पृष्ठों ने सीएसएस का एक टुकड़ा साझा किया है, भले ही हम इसे नरक को संपीड़ित करते हैं, फिर भी हम उस खंड को बार-बार डाउनलोड करने जा रहे हैं, हर बार जब हम उस पृष्ठ का अनुरोध करते हैं जिसमें सीएसएस में वह टुकड़ा होता है।
क्योंकि हमने सीएसएस को पृष्ठ द्वारा संपीड़ित किया है, हमने अनावश्यकताएं होने की अनुमति दी है जहां एक सीएसएस खंड दो या दो से अधिक पृष्ठों द्वारा साझा किया जाता है।
ब्राउजर कैशिंग ब्राउज़र के कारण हमें कोई अच्छा नहीं करता है, प्रत्येक सीएसएस फ़ाइल में एक अलग फ़ाइल नाम होता है, और इस प्रकार एक अलग फ़ाइल है, भले ही उनमें से कुछ में समान सामग्री हो।
तो हमें किस नियम को तोड़ना चाहिए?
एक मैं बंद को पार होता है:
1. आप केवल सीएसएस कि आप पृष्ठ के लिए की जरूरत है देखा जा रहा नीचे लाना चाहिए।
मुझे लगता है कि यह ज्यादा सरल और अधिक कम करें/मेरी साइट के लिए सभी सीएसएस से बाहर नरक गठबंधन, और में एक जाने इसे नीचे लाने के लिए व्यावहारिक है।
प्रदर्शन की समस्याओं इस बना सकता है का सवाल है, मुझे लगता है कि वे निम्नलिखित तथ्यों द्वारा कम कर रहे हैं:
आधुनिक ब्राउज़रों तेजी से संसाधन सीएसएस नियमों में हो रही है, तो बहुत जल्द इससे कोई फर्क नहीं होगा अगर आपके पास स्मृति में बहुत से नियम हैं जिनका उपयोग नहीं किया जा रहा है।
अपने सभी सीएसएस कैश्ड गति एक बहुत किसी भी सुधार आप अनावश्यक नियम, जो जा रहे हैं बाहर छोड़ने से लाभ होता है की तुलना में अधिक सुधार होगा होने वैसे भी लोड करने के लिए, उपयोगकर्ता पृष्ठों है कि उन नियमों की आवश्यकता को ब्राउज़ करता है ।
क्या मैं यहां हूँ?
मैं पूरी तरह से इसका उत्तर दूंगा, लेकिन यह देर से उबर है और यह पढ़ने के लिए एक उपन्यास है। आपको निश्चित रूप से अपने सीएसएस को कम करना चाहिए और आपको एक फ़ाइल में यथासंभव गठबंधन करना चाहिए। ग्राहक एक बार फ़ाइल को खींच देगा और भविष्य के उपयोग के लिए इसे कैश करेगा। यह कई HTTP अनुरोधों से कहीं बेहतर है। –
हां, विडंबना यह है कि मेरा प्रश्न शायद कुछ खनन का उपयोग कर सकता है :) – Jonathan