2012-07-18 10 views
14

संभव डुप्लिकेट:
Where is the best place to put <script> tags in HTML markup?बाहरी जावास्क्रिप्ट - शरीर या सिर?

कहाँ मैं अपने बाहरी जावास्क्रिप्ट फ़ाइल रखना चाहिए? मुझे पता है कि लोग इसे वेब टैग को दिखने के लिए बॉडी टैग के अंत में डालते हैं जैसे यह तेज़ी से लोड होता है। लेकिन क्या अंत में इसे रखने के बारे में कोई विपत्ति है?

और क्या यह जावास्क्रिप्ट को Google Analytics कोड के साथ रखने का एक अच्छा अभ्यास होगा?

<body> 
// Everything else over here ... conent etc.. 
    <script src="myjavascript.js" type="text/javascript"></script> 
     <script type="text/javascript"> 
     // google analytics code 
     </script> 
</body> 
+0

मैं हमेशा इसे सिर में डालता हूं, मुझे शरीर में किसी भी कार्य को कॉल करने की आवश्यकता होती है और मैं फ़ंक्शन को कॉल करने से पहले पृष्ठ को लोड करने की प्रतीक्षा नहीं करना चाहता हूं। –

+0

@ जॉनी क्रैग आपको डिफ करना चाहिए। http://headjs.com देखें - यह

3

वर्तमान सिफारिशों तल पर जावास्क्रिप्ट जगह नहीं है क्योंकि यह "की तरह लग रहा हैं के अंत में डाल एकल स्क्रिप्ट से होने के लिए यह तेजी से लोड होता है ", लेकिन क्योंकि उन्हें वहां रखकर, जावास्क्रिप्ट पार्सिंग और निष्पादन ब्राउज़र को अन्य चीजों को करने से नहीं रोकता है (जैसे शेष पृष्ठ लोड करना)।

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

Google Analytics कोड के लिए - यह आपके उदाहरण में, नीचे इसे स्थानांतरित करना अच्छा अभ्यास है।

+0

लेकिन ऐसा लगता है कि यह तेजी से लोड होता है ... डिज़ाइन पहले = खुश उपयोगकर्ताओं को आता है! लेकिन आप सही हो सकते हैं! बीटीडब्ल्यू, मेरा कोड या विश्लेषण कोड पहले? –

4

अपने पृष्ठ के अंत में अपनी स्क्रिप्ट रखने से improve the performance मदद मिलेगी।

स्क्रिप्ट के कारण समस्या यह है कि वे समानांतर डाउनलोड को अवरुद्ध करते हैं। HTTP/1.1 विनिर्देश बताता है कि ब्राउज़र प्रति समानांतर नाम में दो घटकों की तुलना में डाउनलोड नहीं करता है। यदि आप कई होस्टनामों से अपनी छवियों की सेवा करते हैं, तो आप समानांतर में होने के लिए दो से अधिक डाउनलोड प्राप्त कर सकते हैं। हालांकि, एक स्क्रिप्ट डाउनलोड हो रही है, हालांकि, ब्राउज़र अलग-अलग होस्टनामों पर भी, अन्य किसी भी डाउनलोड को शुरू नहीं करेगा।

यह ध्यान रखना महत्वपूर्ण है कि बाहरी जेएस में संदर्भित किसी भी ऑब्जेक्ट को एक्सेस करने से पहले उन्हें पहले पूरी तरह से लोड किया जाना चाहिए।

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