2016-05-04 8 views
1

複数の<script>タグが同じJavascriptリソースを指している場合、ブラウザは<script>タグごとに1回実行されますか?または、ブラウザは重複しませんか?複数のスクリプトタグが重複して実行されますか?

この場合、どうなりますか?

<script src="example.js"></script> 
<script src="example.js"></script> 
+0

いいえ、それはありませんデデュープを。これは2回含まれていますが、それ自体を再定義しないのは、コードを含むことです。 –

答えて

2

example.jsそれはスクリプトタグによって参照されるたびに立候補ます。ブラウザは重複を解消しようとしません。ただし、サーバーから一度だけ要求することがあります。

これは、asyncおよびdefer属性でも同じです。


何らかの理由で、あなたは一度だけ実行するようにコードを引き起こす重複スクリプトタグをサポートしたい場合、あなたは可能性がありinclude guards for Cと同様の手法。

例えば、example.jsは含めることができます:

if (window.example === undefined) { 
    window.example = { 
    publicFunction: function publicFunction() { 
     // ... 
    }, 
    // ... 
    }; 
} 
関連する問題