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