同じ外部 JavaScript ファイルを何度も頻繁にロードするレガシー コードを使用しています。
ファイルをロード するすべての場所を見つけて.js
、ファイルが既に存在する場合はそれらが再ロードされないようにする必要があるかどうか、またはすべての.js
ファイルを変更して解析されないようにするだけで済むかどうかを決定しようとしています。すでに解析されています。
例えば。という.js
ファイルがあるとしますutils.js
。
if(!utils_Loaded){
var utils_Loaded = true;
var utils = function() {
//javasript code here
};
} else {
console.log("utils.js was already loaded, so we skipped parsing it again.");
}
ただし、まだ読み込み中のインクルードが他に約 500 あるutils.js
ため、実際には HTML は次のようになります。
<script src="/utils.js"></script> ...
<script src="/utils.js"></script> ...
<script src="/utils.js"></script> ...
<script src="/utils.js"></script> ...
<script src="/utils.js"></script> ...
<script src="/utils.js"></script> (... etc)
私の質問は、最新のブラウザーは複数の読み込みをどのように処理するのでしょうか? ブラウザはファイルをキャッシュすると思いますが、コードのいたるところでこれが発生し、何百ものファイルがすべて複数回ロードされるため、何度も乗算されるまで、おそらく小さいメモリに再度プルする必要があります。
インクルードの時点で確認したほうがよいでしょうか?
<script>if(!utils_Loaded){$.getScript("utils.js");}</script> ...
<script>if(!utils_Loaded){$.getScript("utils.js");}</script> ...
<script>if(!utils_Loaded){$.getScript("utils.js");}</script> ...
<script>if(!utils_Loaded){$.getScript("utils.js");}</script> ...
<script>if(!utils_Loaded){$.getScript("utils.js");}</script> ...
<script>if(!utils_Loaded){$.getScript("utils.js");}</script> (...etc)