杂乱的JavaScript标签,如何改进index.html

时间:2013-10-25 08:29:14

标签: javascript performance http

如何更好地组织我的索引中包含的数十个脚本标记? 我希望将HTTP请求降至最低。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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

使用某些工具,您可以将所有脚本合并到一个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可以有一些嵌套导入。

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

因此,图书馆很好,因为它不需要为应用程序本身提供任何其他框架/工具。

应用程序层(模块)

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

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

这些工具也有编译器 - 因此对于生产,您可以将所有资源合并到一个js / css文件中。

应用程序层方法将modules带入游戏 - 我不会在这里解释原因,但它在应用程序中扮演着重要角色。架构。

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