可能重复:
如何将 js 文件包含在另一个 js 文件中?
假设我有几个 JavaScript 源文件:a.js
、a1.js
和a2.js
. 从和a.js
调用函数的函数。a1.js
a2.js
现在我必须在我的 HTML 页面中声明所有这些文件。我只想a.js
在 HTML 和 "import/include"a1.js
以及源文件a2.js
中声明。a.js
是否有意义?我可以在 JavaScript 中做到这一点吗?
可能重复:
如何将 js 文件包含在另一个 js 文件中?
假设我有几个 JavaScript 源文件:a.js
、a1.js
和a2.js
. 从和a.js
调用函数的函数。a1.js
a2.js
现在我必须在我的 HTML 页面中声明所有这些文件。我只想a.js
在 HTML 和 "import/include"a1.js
以及源文件a2.js
中声明。a.js
是否有意义?我可以在 JavaScript 中做到这一点吗?
您不能在 vanilla javascript 中指定导入。
所以你的解决方案(不包括重型服务器端框架)是:
简单地做进口
连接您的 js 文件(并在同一步骤中缩小它们,例如使用闭包编译器)
只要您没有经验,并且文件数量很少(少于 15 个),我建议您简单地选择第一个或第二个解决方案。在开始学习 javascript 时,使用模块加载器可能会产生您不想调试的副作用。
您可以导入:
<script type="text/javascript"src="a1.js"></script>
<script type="text/javascript"src="a2.js"></script>
<script type="text/javascript"src="a3.js"></script>
如果你想直接从 JS 做,你可以使用 Ajax,这篇文章解释了如何: include-javascript-file-inside-javascript-file
您可以使用某些工具将 JavaScript(以及 CSS)文件捆绑在一起,以减少必须包含的文件数量。这也提高了页面加载性能。
这些工具将多个 JavaScript 文件组合成一个 JavaScript 文件(也可以选择缩小文件),并将多个 CSS 文件组合成一个 CSS 文件。这导致从浏览器到服务器的 HTTP 连接更少,因此需要串行获取的内容更少。
ASP.Net MVC 4 对此有内置支持:
http://theshravan.net/bundling-and-minification-support-in-asp-net-mvc-4/
其他环境也有许多解决方案,例如Juicer。
如果您无法捆绑所有资源(可能一些来自 CDN,而另一些则在本地提供),您可以使用诸如require.js 之类的负载管理器。