我有2个脚本文件放在<head>
但是,它们共享相同的Util脚本文件。 我希望如果它们都加载到同一页面上,那么util文件只会加载一次。
如果只加载了其中一个,则仍会加载一次util ...
我不能使用<script src=...utils.js>
...只有2个脚本
我正在使用
var s = document.createElement("script");
s.src = s3 + "/js_enc/utils.js";
s.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(s);
实现这一目标的最佳方法是什么?
感谢
答案 0 :(得分:2)
这似乎不是问题,因为Util
脚本只会在声明时加载:
<script type='text/javascript' src='util.js'></script>
<script type='text/javascript' src='script1.js'></script>
<script type='text/javascript' src='script2.js'></script>
但是如果你想检查脚本是否已经加载,你可以在Util
脚本中设置一个全局变量,比如
var utilFound = true;
然后检查每个脚本以查看它是否已设置。
if(!utilFound) { alert("Util not loaded!"); }
您还可以根据某些条件切换变量,例如:
if(utilFound) {
alert("Util hasn't been accessed yet.");
utilFound = false;
}
else {
alert("Util has already been accessed.");
}
<强>更新强>
根据您的编辑,“检查是否设置和切换”解决方案可以正常工作。如果已设置变量,请不要运行document.createElement
代码。
在util.js
文件中,添加
var utilLoaded = false;
然后在每个脚本中添加您的代码段,再加上utilLoaded
支票/切换:
if(!utilLoaded) {
var s = document.createElement("script");
....
utilLoaded = true;
}