हां यह अवरुद्ध होगा और स्क्रिप्ट केवल तभी निष्पादित की जाएगी जब इससे पहले अन्य स्क्रिप्ट लोड हों।
उदा।
<script src='someExternalSite/script1.js'></script>
<script src='someExternalSite/script2.js'></script>
अधिकतर ब्राउज़र समानांतर में इन दोनों लिपियों लोड करके चीजों को तेजी लाने के लिए कोशिश करेंगे। यहां तक कि script1.js को script1.js से पहले लोड किया गया है, फिर भी वे लोड नहीं होने तक निष्पादित नहीं होंगे।
मैंने हाल ही में इसके साथ परेशानी में भाग लिया। तो मैं कुछ संबंधित बिंदुओं का विस्तार करता हूं।
document.write()
को रोकने के लिए मजबूर करता पार्सर, और स्क्रिप्ट इस तरह से अभी भी क्रमिक रूप से निष्पादित करेंगे डालने (script2.js से पहले script1.js):
document.write('<script src=\'someExternalSite/script1.js\'></script>');
document.write('<script src=\'someExternalSite/script2.js\'></script>');
अंत में, आप पूरी तरह से अतुल्यकालिक लोड हो रहा है ऐसा करके प्राप्त कर सकते हैं:
var script1 = document.createElement('script');
script1.src = 'script1.js';
document.getElementByTagName('body')[0].appendChild(script1);
var script2 = document.createElement('script');
script2.src = 'script2.js';
document.getElementByTagName('body')[0].appendChild(script2);
अंतिम एक, बहुत तेज है के बाद से स्क्रिप्ट समानांतर में पूरी तरह से लोड किए गए हैं, लेकिन वहाँ एक बड़ा पकड़ लिया है। वेबकिट आधारित ब्राउज़र के लिए, ऑर्डर की गारंटी नहीं है, script2.js को script1.js से पहले निष्पादित किया जाएगा यदि इसे पहले लोड किया गया है। यदि आप इसके आसपास काम कर सकते हैं, तो एक जावास्क्रिप्ट फ़ाइल में सभी स्क्रिप्ट्स कहें, तो यह विधि बहुत अच्छी है।
Dynamic script addition should be ordered?
स्रोत
2010-12-01 11:43:53