2012-06-29 14 views
36

हमारे पास कई जावास्क्रिप्ट फ़ाइलें हैं जिन्हें हम मास्टर पेज के नीचे लोड करते हैं। हालांकि, मेरे पास ऐसी स्थिति है जो मुझे अन्य स्क्रिप्ट लोड होने से पहले कुछ जावास्क्रिप्ट करने की आवश्यकता है। क्या सभी जावास्क्रिप्ट फ़ाइलों को लोड होने तक प्रतीक्षा करना संभव है और फिर कुछ जावास्क्रिप्ट कोड निष्पादित करें?जावास्क्रिप्ट कोड निष्पादित करने से पहले सभी जावास्क्रिप्ट फ़ाइलों को लोड होने तक प्रतीक्षा करना संभव है?

मैंने सोचा $(document).ready() ने ऐसा किया, लेकिन जैसा कि यह निकला, ऐसा नहीं है। निस्संदेह हम स्क्रिप्ट फ़ाइलों को नीचे से ऊपर तक ले जा सकते हैं, लेकिन मुझे आश्चर्य है कि यह संभव है कि मैं क्या चाहता हूं।

+0

आप एक 'script' लोडर का उपयोग कर सकते हैं:

$.getScript("my_lovely_script.js", function(){ alert("Script loaded and executed."); // here you can use anything you defined in the loaded script }); 

आप यहाँ एक बेहतर विवरण देख सकते हैं अपनी खुद की लिपि करने के बाद ऐसा करने के लिए। –

+1

मुझे नहीं लगता कि यह स्पष्ट है कि आप क्या चाहते हैं - आप एक ही समय में एक्स * * करने के इच्छुक दोनों की बात करते हैं, * अन्य स्क्रिप्ट लोड हो जाते हैं, लेकिन सभी स्क्रिप्ट * लोड होने तक प्रतीक्षा करना चाहते हैं। जो यह है? और एक्स की प्रकृति क्या है जिसे आप करना चाहते हैं? –

+0

@Damien_The_Unbeliever TGo अधिक स्पष्ट हो: मैं सभी जावास्क्रिप्ट फ़ाइलों को लोड होने के बाद जावास्क्रिप्ट निष्पादित करना चाहता हूं। – Martijn

उत्तर

53

आप उपयोग कर सकते हैं

$(window).on('load', function() { 
    // your code here 
}); 

जब तक पृष्ठ लोड होता है कौन सा इंतजार करेंगे। जब तक $(document).ready() प्रतीक्षा करता है डोम

+1

यहां एक बेहतर स्पष्टीकरण है http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/ – Eruant

+0

मेरे आवेदन के लिए अच्छी तरह से काम किया गया है, जो पृष्ठ सामग्री उत्पन्न करने से पहले गतिशील रूप से लोड की गई स्क्रिप्ट लोड होने तक प्रतीक्षा करने की आवश्यकता होती है। +1 – Roberto

18

आप <script> की defer विशेषता का उपयोग कर सकते हैं। यह निर्दिष्ट करता है कि पृष्ठ निष्पादित होने पर स्क्रिप्ट निष्पादित की जाएगी।

<script defer src="path/to/yourscript.js"> 

इस बारे में एक अच्छा लेख: http://davidwalsh.name/script-defer

ब्राउज़र समर्थन काफ़ी अच्छा लगता है: http://caniuse.com/#search=defer

+1

यह अन्य सभी जेएस फ़ाइलों को निष्पादित करने की प्रतीक्षा नहीं करता है, कम से कम फ़ायरफ़ॉक्स में नहीं। – Rolf

27

भरी हुई है आप .getScript() का उपयोग करें और के बाद लोड अपने कोड चला सकते हैं: How do I include a JavaScript file in another JavaScript file?

+8

यदि मैं मानक जावास्क्रिप्ट फ़ंक्शन चाहता हूं, तो jquery नहीं। कोड कैसा है –

+0

ध्यान दें कि यह फ़ाइल को कैश नहीं करेगा, यह हर बार इसे डाउनलोड करेगा। प्रलेखन कैश को सक्षम करने के लिए $ .ajaxSetup या $ .ajax को संदर्भित करता है। – JanErikGunnar

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

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