मैं विविध पर कुछ संबंधित सामग्री शामिल कर रहा हूं। <body>
टैग के अंत के पास <script>
टैग जोड़कर वेब पेज, जो तब अन्य जावास्क्रिप्ट फ़ाइलों को लोड करता है। प्रवाह एक छोटे से जटिल है, इसलिए मैं अपने सवाल पूछने से पहले यह समझाने की कोशिश करेंगे:आईई को गतिशील रूप से शामिल स्क्रिप्ट को दो बार लोड करने से रोकें
- एक ब्राउज़र
<body>
तत्व - की src विशेषता के अंत के पास हमारे
<script>
तत्व में कोई पृष्ठ लोड स्क्रिप्ट टैग एक जावास्क्रिप्ट फ़ाइल को इंगित करता है जो (कुछ मामलों में) एक दूसरे<script>
तत्व - इंजेक्शन
<script>
तत्व की स्रोत विशेषता अभी तक एक और जावास्क्रिप्ट फ़ाइल इंगित करती है, जो अंततः पृष्ठ के उचित भाग पर कुछ सामग्री इंजेक्ट करती है।
हम अंतिम सामग्री को शामिल करने के बारे में निर्णय लेने से पहले कुछ बुनियादी प्रक्रिया करने में सक्षम होने के लिए इस दो-चरण दृष्टिकोण का उपयोग कर रहे हैं, जिसमें लोड करने में कुछ समय लग सकता है।
समस्या यह है कि IE8 (और शायद पुराने संस्करण) अंतिम जावास्क्रिप्ट को दो बार लोड करता है। ऐसा प्रतीत होता है कि src विशेषता सेट करने का कार्य एक लोड को ट्रिगर करेगा, लेकिन इसलिए स्क्रिप्ट टैग को DOM में जोड़ देगा। क्या इससे बचने का कोई तरीका है?
मैंने समस्या के bare-bones demo बनाया है। यदि आपके पास HTTP अनुरोधों का पता लगाने का कोई तरीका है, तो आप देखेंगे कि IE8 js_test2.js को दो बार लोड करता है।
इस बहुत संपूर्ण जवाब के लिए धन्यवाद। मैं वास्तव में अधिक पारंपरिक डोम रास्ते पर वापस आ गया है, और यह अब अच्छी तरह से काम करता है। प्रारंभिक कॉल में अनदेखा करने के बारे में: यदि मुझे सही ढंग से याद है, तो मैंने उस कोड को कॉपी किया है जिसे Google Analytics ने अपनी स्क्रिप्ट को शामिल करने के लिए उपयोग किया है, (शायद झूठी) धारणा के तहत कि अगर कोई जानता है कि रिमोट जावास्क्रिप्ट को मजबूत तरीके से कैसे शामिल किया जाए, तो यह GA लोग हैं । स्पष्टीकरण के लिए धन्यवाद। – stiang