2011-01-01 9 views
5

मैंने हाल ही में देखा है कि मेरे जावास्क्रिप्ट और jQuery स्क्रिप्ट्स के कुछ (सभी नहीं) काम नहीं करेंगे जब तक कि मैं .js फ़ाइलों के लिए लिंक को सिर क्षेत्र के बजाय पृष्ठ के निचले भाग की ओर न रखूं जहां मैंने अपने लिंक मेरे लिए रखे .css फ़ाइलें।मैं अपनी एचटीएमएल फाइल में अपनी जावास्क्रिप्ट/jQuery फ़ाइलों को लिंक कहां डालूं?

जो मैं समझता हूं उससे जावास्क्रिप्ट किसी भी स्थान पर जा सकता है और इसे हेडर में नहीं रखा जाना चाहिए क्योंकि यह पेज लोडिंग प्रक्रिया को भी धीमा कर देता है। साथ ही, अगर मैं इसे HTML फ़ाइल के बॉडी टैग में डालता हूं, तो यह कुछ हद तक गन्दा दिखता है और यह सोच रहा था कि .js फ़ाइलों को एक साफ जगह पर डालने का सबसे अच्छा अभ्यास क्या है। क्या मुझे हमेशा इसे स्थायी शरीर टैग से पहले बहुत नीचे दाएं रखना चाहिए? पेशेवर वेब डेवलपर्स इसे कैसे संभालते हैं?

उत्तर

3

यदि आपकी स्क्रिप्ट तब तक काम नहीं करती जब तक कि आप उन्हें नीचे की तरफ नहीं डालते हैं, तो संभवतः आप डोम को मैनिपुलेट करना शुरू कर देते हैं जब डोम अभी तक तैयार नहीं होता था (या शायद आपने दस्तावेज़.write का उपयोग किया था, लेकिन मुझे संदेह है कि यह मामला था)। इसे हल करने के लिए आपको केवल डीओएम तैयार होने पर प्रसंस्करण शुरू करने की आवश्यकता है।

$(function() { 
    // DOM is ready here and you can safely manipulate it 
}); 

के बारे में कैसे स्क्रिप्ट की स्थिति प्रदर्शन मैं सुझाव है कि आप ग्राहक के पक्ष प्रदर्शन के गुरु से उन 3 लेख पढ़ने को प्रभावित करता है:

असिंक्रोनस लोडिंग और देरी निष्पादन अभी बहुत गर्म विषय हैं। वे आपको <head> पर सबकुछ साफ रूप से परिभाषित करने की अनुमति देते हैं, लेकिन वे कितने लोड होते हैं और जब उन्हें निष्कासित किया जाता है, तो यह बहुत विशिष्ट होता है।

+0

धन्यवाद, कोड आप जबकि अभी भी शीर्ष पर रखा जा रहा मुझे jQuery कोड काम करते हैं दे दी है। और डोम की लोडिंग पर अंतर्दृष्टि के लिए धन्यवाद, यही वही है जो मुझे समझने की जरूरत है। –

+0

मैंने जो सिंटैक्स दिया है, वह आपको विदेशी दिख सकता है, लेकिन यह केवल स्वयं व्याख्यात्मक '$ (दस्तावेज़) का शॉर्टेंड है। (फ़ंक्शन() {...});' – cherouvim

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