2010-04-23 2 views
7

javaacript कोड लिखने, वहीं मैं अलग <script> टैगक्या यह पृष्ठ पर एकाधिक और अलग <script > लिखने का अधिकार है?

<script type="text/javascript"> 
//---- code block 1--------- 
</script> 

<script type="text/javascript"> 
    ----code block 2----- 
</script> 

<script type="text/javascript"> 
$(document).ready.(function(){ 
// code block3 
}); 
</script> 

मुझे लगता है कि जानना चाहता हूँ के साथ एक कोड ब्लॉक यह एक ही पृष्ठ

--or--

पर अलग <script type="text/javascript"></script> लिखने के लिए अच्छा अभ्यास है

हमें सभी जावा स्क्रिप्ट कोड को एक <script>

प्रत्येक तरीके से तकनीकी मतभेद क्या हैं?

उत्तर

5

अच्छा, आप खुद से पूछना चाहेंगे कि आपकी कोड संगठन योजना उस सेटअप की ओर क्यों जाती है, और क्या यह रखरखाव या समझदारी की समस्या का कारण बनती है, लेकिन मुझे नहीं लगता कि यह सख्ती से "बुरा" है। अब यदि आपके <script> टैग वास्तव में सर्वर से अलग फ़ाइलों को ला रहे हैं, तो उन पर वापस कटौती करना एक अच्छा विचार है।

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

अलग-अलग स्क्रिप्ट फ़ाइलों में जाने का एक लाभ यह है कि आप एकाधिक पृष्ठों पर कोड का पुनः उपयोग कर सकते हैं। जब आप ऐसा करते हैं, तो YUICompressor या किसी अन्य समान टूल के साथ अपनी स्क्रिप्ट को संपीड़ित करने के लिए बिल्ड समय पर आसान हो सकता है।

1

एकाधिक <script> टैग होने से प्रदर्शन में कोई वास्तविक अंतर नहीं होता है लेकिन कम पढ़ा जा सकता है।

+1

मुझे संदेह है कि यह थोड़ा धीमा होगा। – SLaks

0

आपको ऐसा करने की ज़रूरत नहीं है, लेकिन यह स्पष्ट रूप से क्लीनर है, जब तक कि आप कोड के ब्लॉक को स्पष्ट रूप से अलग नहीं करना चाहते।

0

अपने सभी जावास्क्रिप्ट कोडिंग को अलग में रखें और फिर फ़ाइल नाम पर कॉल करें। क्योंकि यह अच्छी बात है। कोडिंग निष्पादन चरण-दर-चरण है, इसलिए यदि कोड कोडिंग के बीच मौजूद होता है तो इसमें समय लगेगा।

0

अच्छा नहीं है, लेकिन कोई समस्या नहीं है।

3

ऐसा करने का सबसे अच्छा कारण यह है कि प्रत्येक स्क्रिप्ट कार्यक्षमता के एक अलग खंड का प्रतिनिधित्व करती है जिसका उपयोग प्रत्येक पृष्ठ पर (और इसलिए नहीं किया जा सकता) पर नहीं किया जा सकता है। उस स्थिति में, यह एक स्मार्ट रणनीति बन जाता है।

0

हंटर सही है, जहां तक ​​प्रदर्शन का संबंध है, यह बिल्कुल कोई फर्क नहीं पड़ता है।

जब आपका जावास्क्रिप्ट हालांकि अधिक जटिल हो जाता है, तो आप अपने स्वयं के एपीआई बनाने और अलग-अलग फ़ाइलों में उन सभी टैग को विभाजित करना शुरू कर सकते हैं। फिर जब आप अपना ऐप तैनात कर रहे हों, तो कुछ प्रकार के पैकेजिंग समाधान ढूंढें जो उन सभी फ़ाइलों को एक साथ जोड़ देगा, यूयूआई कंप्रेसर या Google क्लोजर का उपयोग करके इसे संपीड़ित करें और एक सिंगल टैग है जो आपके सभी कोड की इस फ़ाइल को संदर्भित करता है।

हालांकि यह फ़ाइल के लिए एक अलग http अनुरोध को मजबूर करने के लिए 'मामूली' हानि है, अगर यह ठीक से पैक किया गया है, तो फ़ाइल का आकार उस फ़ाइल में शामिल असंपीड़ित कोड से छोटा होगा।

यह भी (यानी Google Analytics को)

0

जब भी आप सूखी सिद्धांत (खुद को दोहराना नहीं) का उल्लंघन कर रहे हैं, तो आप की जरूरत है अपने पृष्ठ कि अतिरिक्त कार्यक्षमता प्रदान में और नीचे स्क्रिप्ट टैग होना सामान्य है पूछो कयो। यदि आपके पास कोई अच्छा कारण नहीं है, तो शायद आपको ऐसा नहीं करना चाहिए।

1

एक किनारा मामला है जहां एकाधिक स्क्रिप्ट ब्लॉक एक अंतर डाल सकते हैं (और मैंने अभी इसके बारे में सीखा है)। यदि कोड references a value before it has been declared कोड की एक पंक्ति है, तो यह कोड काम करेगा यदि कोड एक ही स्क्रिप्ट ब्लॉक से संबंधित है, लेकिन यदि वे अलग नहीं हैं। लेकिन यह आपके द्वारा दिए गए उत्तर को बदल नहीं देता है: शायद यह हर रोज कोडिंग में कोई फर्क नहीं पड़ता।

+0

हां, वास्तव में इस पृष्ठ पर Google Analytics कोड इस सिद्धांत पर निर्भर करता है। संपादित करें: ओह, रुको, यह वास्तव में * विपरीत * सिद्धांत है: पहले ब्लॉक में एक दस्तावेज़.write को दूसरे ब्लॉक से पहले पार्स किया जाता है और चलाया जाता है, * कुछ चरों को संदर्भित किया जाता है जो दूसरे में संदर्भित नहीं होता है। – tloflin

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