http://developer.yahoo.com/performance/rules.html#external
याहू (भले ही वे कई इनलाइन शैलियों और स्क्रिप्ट है), उन्हें बाहरी बनाने अनुशंसा करता है। मेरा मानना है कि Google पेज की गति (या अभी भी करता है?) भी वही करती है।
यह वास्तव में उन्हें अलग करने के लिए एक तार्किक बात है। सीएसएस और जेएस को एचटीएमएल से अलग रखने के लिए बहुत सारे फायदे हैं।तार्किक कोड प्रबंधन जैसी चीजें, उन पृष्ठों का कैशिंग, निचला पृष्ठ आकार (क्या आप 400kb कैश किए गए संसाधन के लिए ~ 200ms अनुरोध, या प्रत्येक पृष्ठ पर उस डेटा को डाउनलोड करने से 4000ms देरी होगी?), एसईओ विकल्प (कम बकवास जब स्क्रिप्ट/शैलियों बाहरी होते हैं तो देखने के लिए Google), बाहरी स्क्रिप्ट्स (ऑनलाइन टूल्स इत्यादि) को कम करने के लिए आसान है, उन्हें विभिन्न सर्वरों से सिंक्रनाइज़ कर सकते हैं ....
यह किसी भी वेबसाइट में आपका प्राथमिक उद्देश्य होना चाहिए। आपकी पूरी वेबसाइट बनाने वाली सभी शैलियों को एक फ़ाइल में होना चाहिए (या प्रत्येक पृष्ठ के लिए फ़ाइलें, फिर अद्यतन होने पर विलय और minified), जावास्क्रिप्ट के लिए समान है।
असली दुनिया में (अपने लिए कोई प्रोजेक्ट नहीं कर रहा है, एक ग्राहक या हितधारक के लिए ऐसा करना जो परिणाम चाहता है), केवल एक समय जहां यह किसी अन्य जावास्क्रिप्ट संसाधन या किसी अन्य स्टाइलशीट में लोड करने के लिए समझ में नहीं आता है (और इस प्रकार इनलाइन शैलियों/जावास्क्रिप्ट का उपयोग करें) यह है कि अगर किसी प्रकार की गतिशील जानकारी है जो प्रति-उपयोगकर्ता, प्रति-सत्र या प्रति-अवधि-अवधि पर है जिसे किसी भी अन्य तरीके से पूरा नहीं किया जा सकता है। उदाहरण: जब मेरी वेबसाइट का प्रचार होता है, तो हम जानकारी के एक छोटे JSON ऑब्जेक्ट के साथ एक स्क्रिप्ट टैग डंप करते हैं। चूंकि हम कई फ़ाइलों को छोटा और मर्ज नहीं करते हैं, इसलिए इसे पृष्ठ में शामिल करने के लिए और अधिक समझदारी होती है। निश्चित रूप से ऐसा करने के अन्य तरीके हैं, लेकिन ऐसा करने के लिए $ 20 खर्च करते हैं, जबकि इसे एक और तरीका करने के लिए $ 100 खर्च हो सकता है।
शायद अमेज़ॅन/फेसबुक/Google आदि इतने इनलाइन कोड का उपयोग करते हैं, इसलिए उनके सर्वर पर बहुत अधिक कर नहीं लगाया जाता है। मुझे एक हिट में 1 एमबी फ़ाइल का अनुरोध करने या 10 100 केबी फाइलों का अनुरोध करने के बीच बेंचमार्किंग पर निश्चित नहीं है (उदाहरण के लिए 1 एमबी/10 = 100 केबी मानते हैं), लेकिन तेजी से क्या होगा? संभावित रूप से 1 एमबी फ़ाइल, लेकिन छोटे अनुरोधों को तुल्यकालिक रूप से लोड किया जा सकता है, जिसका अर्थ है कि उन 10 अनुरोधों में से प्रत्येक एक अलग सर्वर/डोमेन से संभावित रूप से आ सकता है, इस प्रकार कुल लोड समय को कम करता है।
आगे, उदाहरण के लिए Google होमपेज विजेट्स के लिए जेएसओएन सरणी जानकारी को डंप करने लगते हैं, संभवतः क्योंकि यह विभिन्न स्रोतों से सभी जानकारी को संकलित करता है, इसे छोटा करता है, इसे कैश करता है, फिर पेज पर रखता है, फिर जावास्क्रिप्ट फ़ंक्शन लेआउट का निर्माण (सर्वर साइड की बजाय क्लाइंट साइड प्रोसेसिंग पावर)।
यह एक दिलचस्प अवलोकन है। मुझे आश्चर्य है कि ऐसा इसलिए है क्योंकि अधिकांश समय HTTP कनेक्शन स्थापित करने में व्यतीत होता है? यदि ओवरहेड काफी बड़ा है, तो संभवतः आप वास्तविक पेलोड में जितना संभव हो उतना पैक करना चाहते हैं। –
हाँ, दिलचस्प सवाल (हालांकि शायद वेबमास्टर्स.एसई पर बेहतर अनुकूल है?) –
कई असहमत होंगे, लेकिन आईएमओ इससे थोड़ा अंतर आता है। मैं हमेशा सीएसएस और जेएस डालता हूं जिसे मैं HTML पृष्ठ में लिखता हूं। जब मैं आसानी से सामान पढ़ सकता हूं तो इसे बदलने के लिए और अधिक सुविधाजनक है। –