2

我可以做些什么来更好地组织我的索引中包含的数十个脚本标签?我想将 HTTP 请求降到最低。

4

2 回答 2

4

这是一种非常常见的做法:使用像这样.js的连接工具(也适用于 CSS)将所有文件合并为一个。然后还考虑使用压缩器压缩代码。UglifyJS运行良好,也被 jQuery 项目使用。

于 2013-10-25T08:32:12.900 回答
1

此问题有 2 个常见的解决方案 - 库级别和应用程序级别。

图书馆

使用一些工具,您可以将所有脚本组合到一个 js 文件中。在 Atma.js 我们使用importer, 所以 lib. 文件看起来像这样

// import /src/a.js
console.log('do smth. with a');
// import /src/b.js
console.log('do smth. with b, or a');

这种方法比简单的文件连接更好,因为a.js可能有一些嵌套导入。

还有一些工具可以监视所有源的更改,并且当您编辑任何文件时,该工具会为您运行任务,因此生成的库始终是新鲜的并准备好进行调试。我们也有 UglifyJS,所以也可以制作缩小版。

所以库很好,因为它不需要应用程序本身的任何额外框架/工具。

应用层(模块)

在这里,您使用客户端上的附加库。有很多,其中一些是requirejsincludejs。我们使用最后一个,因为它不仅可以加载javascript,还可以加载coffeescript、样式(css、less)以及任何其他文本/html/模板文件。

包括/要求源,所有嵌套的依赖关系也被加载。在开发模式下,当您分别加载 N 个文件时,它看起来非常适合调试,因为任何异常您都有行号和发生它的文件。

这些工具也有编译器——因此在生产环境中,您可以将所有资源组合到一个 js/css 文件中。

应用层方法modules引入游戏 - 我不会在这里解释为什么,但它在应用程序中起着巨大的作用。建筑学。

您必须审查这两种方法,并决定在您的应用程序中哪种方法可能更好。有任何进一步的问题,不要犹豫,在评论中问他们。

于 2013-10-25T09:10:36.910 回答