如果我有多个<script>
标记指向相同的Javascript资源,那么浏览器是否针对每个<script>
标记运行一次?或浏览器是否重复删除?
在这种情况下会发生什么?
<script src="example.js"></script>
<script src="example.js"></script>
答案 0 :(得分:2)
example.js
会在每次脚本标记引用时运行。浏览器不会尝试对其进行重复数据删除。 (但它可能只从服务器请求一次。)
即使使用async
和defer
属性也是如此。
如果出于某种原因,您希望支持重复的脚本代码,这些代码只导致代码运行一次,那么您可以使用类似于include guards for C的技术。
例如,example.js
可以包含:
if (window.example === undefined) {
window.example = {
publicFunction: function publicFunction() {
// ...
},
// ...
};
}