javascript包含2次相同的外部js
Posted
技术标签:
【中文标题】javascript包含2次相同的外部js【英文标题】:javascript include 2 times the same external js 【发布时间】:2014-03-26 00:10:00 【问题描述】:我在命令中包含 jquery 外部 js 文件:
<script type='text/javascript' src='js/jquery-1.11.0.js' ></script>
我将在下面的同一页面中再次调用它(这是因为我将它包含在 php 类中以确保在继续之前加载它)。所以在页面中,我会在不同的地方有2倍的行:
<script type='text/javascript' src='js/jquery-1.11.0.js' ></script>
我想知道这是否会在我的页面中产生问题,以及脚本 jquery 是否会被加载 2 次,这将是无效的。
谢谢,
约翰。
【问题讨论】:
除了生成下载数据的开销之外,在第二次加载脚本之前包含 jQuery 插件可能会导致问题(因为这将再次覆盖插件)。第一次真的需要包含 jQuery 吗? 可能重复***.com/questions/4891278/… 【参考方案1】:这将为包含在这两个包含之间的任何插件产生问题。例如,如果您有:
<script type='text/javascript' src='js/jquery-1.11.0.js' ></script>
<script type='text/javascript' src='js/jquery-plugin.js' ></script>
<script type='text/javascript' src='js/jquery-1.11.0.js' ></script>
jquery-plugin.js 将被覆盖,它不会工作。
【讨论】:
【参考方案2】:它将被包含两次。没有必要这样做。如果您绝对必须在两个地方编写包含标签,请有条件地进行第二次。下面的代码将仅包含尚未包含的 jQuery。
<script>
window.jQuery || document.write('<script src="js/jquery-1.11.0.js"><\/script>')
</script>
【讨论】:
【参考方案3】:应该没问题,尤其是在现代浏览器中,但是这样做有点奇怪。
如果您在第一个脚本标记之后加载 jQuery 插件,这些将不再起作用,因为 jQuery
/$
已重新初始化。
不过,我想不出你需要加载两次的任何理由 - 你确定需要这样做吗?最好的办法是将脚本标记放在页面底部,然后关闭<body>
标记。
【讨论】:
【参考方案4】:根据库,多次包含它可能会产生不良影响。
可以这样想,如果您有一个将单击事件绑定到按钮的脚本,并且您将该脚本包含两次,那么当单击该按钮时,这些操作将运行两次。
您可以编写一个简单的函数,调用该函数来加载脚本并让它跟踪已加载的文件。或者,我敢肯定您可能会使用预先存在的 JS 加载器(例如 LabJS)并对其进行修改。
参考:What is the danger in including the same JavaScript library twice
【讨论】:
以上是关于javascript包含2次相同的外部js的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript Javascript包含带外部文件的菜单
props 被两次添加到在 React / Javascript 中的组件外部声明的数组变量中