9

AMD 似乎是按需加载 javascript 模块的最佳实践。

这应该适用于用户只使用一小部分可用功能的大型网络应用程序。

我读过优化器,它将所有需要的模块连接到一个文件中,我读过没有优化,即用异步请求加载每个模块。

两者似乎都不适合这个用例:使用请求加载每个模块可能会很快导致大量请求,而优化会迫使您下载所有代码。

有没有办法将多个模块捆绑到一个文件中?

4

2 回答 2

9

是的。通常将应用程序分成这么多文件并用 AMD 加载它们只对开发有好处。它有助于保持代码简洁易懂;每个模块都包含视图、模型、控制器并且每个模块都是一个单独的文件,这是非常合乎逻辑的。

然而,大量的请求在生产中没有意义。因此,您应该使用优化器将文件编译并最小化为一个(或几个)文件,以提高性能和用户体验。

如果您使用 RequireJS,请参考http://requirejs.org/docs/optimization.html#wholeproject — 它解释了如何使用r.jsRequireJS 提供的工具。

例如,如果我的应用程序由公共区域、管理和一个非常复杂的注册表单组成,每个都由数百个视图/模型/控制器组成,我可能会将我的代码编译成只有 4 个文件:common、public、admin、sign_up。然后,当用户进入特定区域时,将异步加载适当的文件。

于 2012-08-15T22:14:03.787 回答
6

RequireJS 用他们的优化工具支持这个用例。

通过 build.js 中的正确配置,可以将其配置为将多个模块捆绑在多个文件中。

它们的映射可以在build.js中定义,如本示例项目所示

于 2012-08-19T16:13:46.733 回答