2008-10-07 12 views
11

मैं अपने जावास्क्रिप्ट और मेरे CSS न्यूनतम हैबेस्ट प्रैक्टिस: शामिल हैं (या <script src = "

अब, कौन सा बेहतर है

<script type="text/javascript"> 
<? 
    $r = file_get_contents('min.js'); 
    if($r) echo $r; 
?> 
</script> 

या

<script type="text/javascript" src="min.js"></script> 

एक ही सवाल।? सीएसएस के लिए।

यदि उत्तर 'कभी-कभी ब्राउज़र ब्राउज़र फ़ाइलों को एक साथ लाता है?' कौन से ब्राउज़र, और उदाहरण क्या हैं किसी भी परिदृश्य में समय।

+0

यह incorectly टैग है 'http' प्रयास करें। –

उत्तर

22
<script type="text/javascript" src="min.js"></script> 

... बेहतर है, क्योंकि उपयोगकर्ता का ब्राउज़र फ़ाइल को कैश कर सकता है।

src पर पैरामीटर जोड़ना जैसे कि फ़ाइल का अंतिम संशोधित टाइमस्टैम्प भी बेहतर है, क्योंकि उपयोगकर्ता का ब्राउज़र फ़ाइल को कैश करेगा, लेकिन फ़ाइल संशोधित होने पर हमेशा सबसे अद्यतित संस्करण पुनर्प्राप्त करेगा।

<script type="text/javascript" src="min.js?version=20081007134916"></script> 
+0

उपयोगकर्ताओं के खाली कैश वाले 20-60% के साथ, क्या कम HTTP अनुरोध या कैश किए गए परिणाम बेहतर हैं? –

+0

* उद्धरण http://developer.yahoo.com/yui/compressor/ –

+0

क्या ब्राउजर HTTP हेडर से वह जानकारी प्राप्त नहीं कर रहे हैं? –

6

यह बेहतर अधिकांश समय जावास्क्रिप्ट और सीएसएस फ़ाइलों को शामिल करने, क्योंकि इस तरह ब्राउज़र में जावास्क्रिप्ट/सीएसएस फ़ाइल को कैश करने में सक्षम है है। इस तरह फ़ाइल को ब्राउज़र द्वारा केवल एक बार लोड किया जाता है भले ही आप फ़ाइल को कई अन्य पृष्ठों में शामिल करते हैं।

लेकिन यह केवल तभी सही है जब आप PHP या अपाचे mod_expires के माध्यम से जावास्क्रिप्ट और सीएसएस फ़ाइलों के लिए उपयुक्त समाप्ति और/या कैश-नियंत्रण शीर्षलेख सेट करते हैं। !

याहू असाधारण प्रदर्शन से recommondation के आधार पर केवल एक अपवाद है:

एकमात्र अपवाद है, जहां इनलाइनिंग बेहतर है याहू के पहले पन्ने के रूप में घर पृष्ठ, और मेरे याहू के साथ है !. होम पेज जिनके पास प्रति सत्र (शायद केवल एक) पृष्ठ दृश्य है, वे खोज सकते हैं कि जावास्क्रिप्ट और सीएसएस परिणामों को तेजी से अंत उपयोगकर्ता प्रतिक्रिया समय में रेखांकित करते हैं।

मैं सुझाव देता हूं कि आप एडन "फायरबग के लिए वाईएसलो" को आजमाएं। यह कैशिंग और ब्राउज़र/क्लाइंट-प्रदर्शन के बारे में बहुत सारे प्रश्नों का उत्तर देता है।

यह भी देखें:

Apache mod_expires

Best Practices for Speeding Up Your Web Site

YSlow

0

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

जो पहले से कहा गया था उसे जोड़ने के लिए: याद रखें कि यदि आप अपनी जावास्क्रिप्ट फ़ाइलों को गठबंधन/छोटा करते हैं, तो उन्हें सभी में एक साथ विलय करना बेहतर होता है - संपीड़न बेहतर काम करेगा। इसके अतिरिक्त, भले ही आप अपनी फ़ाइलों को कम नहीं करते हैं, फिर भी अपने वेब सर्वर कॉन्फ़िगरेशन में GZIP चालू करना याद रखें; फिर, यदि आप अपनी सभी जेएस फाइलों को एक में जोड़ते हैं और उस फ़ाइल को शामिल करते हैं, तो जीजेआईपी संपीड़न सबसे अच्छा काम करेगा (क्योंकि दो जेएस फाइलों को संपीड़ित करना एक साथ अलग-अलग संपीड़न से बेहतर परिणाम उत्पन्न करता है)।

आप एक अच्छे जे एस minification उपयोगिता के लिए देख रहे हैं, जे एस पैकर (http://dean.edwards.name/packer/)

+0

जब तक आप gzipping कर रहे हैं, पैकर है उल्टा। जेएसएमआईएन, वाईयूआई कंप्रेसर, और पैकर के पास लगभग एक ही gzipped पदचिह्न है, लेकिन पैकर क्लाइंट-साइड देरी पेश करता है क्योंकि यह eval() 'd है। यदि आपको obfuscation की आवश्यकता है तो पैकर बहुत अच्छा है। –

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