2012-09-26 14 views
15

क्या डोम तैयार होने से पहले jQuery कोड निष्पादित करने का कोई तरीका है?डीओएम तैयार होने से पहले jQuery कोड चल रहा है?

+1

हां। लेकिन इसके कुछ हिस्सों जो डीओएम के साथ बातचीत करते हैं, काम नहीं करेंगे। –

+2

हां वहाँ है, लेकिन दिया गया है कि jQuery मुख्य रूप से डोम में संशोधन करने का इरादा है, आप क्यों चाहेंगे? –

+0

देखें :: http://stackoverflow.com/questions/4124765/how-to-load-jquery-before-dom-is-ready –

उत्तर

16

jQuery सिर्फ जावास्क्रिप्ट है, इसलिए सवाल वास्तव में है "क्या डोम तैयार होने से पहले जावास्क्रिप्ट को चलाने के लिए संभव है" और इसके साथ मैं अनुमान लगा रहा हूं कि आप दस्तावेज़ का मतलब है और डोम नहीं।

अगर हम इस बात से सहमत हो सकते हैं कि प्रश्न "दस्तावेज़ तैयार होने से पहले जावास्क्रिप्ट को चलाने के लिए संभव है"। तब जवाब हाँ है। सामना करते समय जावास्क्रिप्ट निष्पादित किया जाएगा।

है यही कारण है कि आप लगभग हमेशा या तो या $(document).ready(function(){...}) क्योंकि ज्यादातर jQuery कोड तैयार होने के लिए, लेकिन कोड ईवेंट हैंडलर संलग्न निश्चित रूप से क्रियान्वित किया जाता है दस्तावेज़ की आवश्यकता है देखने से पहले दस्तावेज़ तैयार (अन्यथा यह संभाल करने में सक्षम नहीं होगा है दस्तावेज़ तैयार घटना)।

आमतौर पर आपको अपने जावास्क्रिप्ट को अपने एचटीएमएल के नीचे शामिल करना चाहिए, लेकिन यदि आप इसे पहले निष्पादित करना चाहते हैं तो आप इसे पहले दस्तावेज़ में रख सकते हैं उदा। शीर्षलेख में

<html> 
    <head> 
    ... 
    <script> 
     //place your code to be executed early here 
    </script> 
    </head> 
... 
</html> 
3

यदि आप अपने दस्तावेज़ के शीर्ष में jQuery में शामिल हैं, और उसके बाद सिर में एक और स्क्रिप्ट टैग में अपने कोड लिखने, यह डोम से पहले चलेंगे तैयार है:

<head> 
    <script src="jquery.js"></script> 
    <script> 
     // Do some stuff before the DOM is ready 
    </script> 
</head> 
<body> 
    <!-- Browser hasn't got this far, so no elements will be available --> 
</body> 

हालांकि, स्पष्ट रूप से आप जीता ' किसी भी डोम तत्वों से बातचीत करने में सक्षम नहीं होंगे, क्योंकि वे अभी तक मौजूद नहीं होंगे।


कहा करने के बाद कि, वहाँ एक तकनीक आप आधुनिक ब्राउज़रों कि आप डोम तत्वों के साथ बातचीत करने के लिए के रूप में वे पेज में डाला जाता है (जबकि ब्राउज़र यह प्रतिपादन किया जाता है) की अनुमति दे सकते में उपयोग कर सकते हैं। यह CSS animation events पर निर्भर करता है। मैंने इसे संभालने में आसान बनाने के लिए a simple library (Progressive.js) लिखा है।

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