虽然我几乎可以肯定这个问题的答案是特定于浏览器的,但是否有任何浏览器定义了使用多个 <script> 标签并具有相同 src 属性时的行为?
例如...
<script src="../js/foo.js"></script>
...
<!-- what happens here? -->
<script src="../js/foo.js"></script>
我首先问这个问题的原因是,在我的特定情况下,我在使用 JQuery 的 ASP.NET MVC 应用程序中使用部分 View 。 JQuery JS 文件都通过脚本标签包含在主模板文件中。我更愿意将脚本标签添加到部分 View 文件中,以便万一它们在主模板的上下文之外使用,它们将自动包含所有必需的 JS 文件,而不依赖于另一个 View 或模板来包含它们。但是,我当然不希望导致 JS 文件必须多次传输到客户端,或者任何其他可能对用户体验产生负面影响的副作用。
我现在的想法是,大多数(如果不是全部)主要浏览器(FF、Safari、IE、Opera)会在第一次使用 JS 文件时缓存它,然后浏览器将在后续的脚本标签上使用缓存的副本(如果可用且尚未过期)。但是,缓存行为通常可以通过浏览器配置进行更改,因此依赖任何类型的缓存行为似乎都不太“安全”。
我是否必须接受我的部分 View 将依赖于其他模板或 View (包括适当的 JS 文件)这一事实?
最佳答案
即使它们被缓存,您也可能会遇到问题,因为相同的代码将被执行两次。至少,这会导致浏览器花费比必要更多的时间。而且它可能会导致错误,因为大多数 JavaScript 代码并不是为了执行两次而编写的。例如,它可能会两次附加相同的事件处理程序。
关于javascript - 如果在单个 HTML 文档中多次使用具有相同 "src"属性的 <script> 标记会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1533723/