AMD 似乎是按需加载 javascript 模块的最佳实践。
这应该适用于用户只使用一小部分可用功能的大型网络应用程序。
我读过优化器,它将所有需要的模块连接到一个文件中,我读过没有优化,即用异步请求加载每个模块。
两者似乎都不适合这个用例:使用请求加载每个模块可能会很快导致大量请求,而优化会迫使您下载所有代码。
有没有办法将多个模块捆绑到一个文件中?
AMD 似乎是按需加载 javascript 模块的最佳实践。
这应该适用于用户只使用一小部分可用功能的大型网络应用程序。
我读过优化器,它将所有需要的模块连接到一个文件中,我读过没有优化,即用异步请求加载每个模块。
两者似乎都不适合这个用例:使用请求加载每个模块可能会很快导致大量请求,而优化会迫使您下载所有代码。
有没有办法将多个模块捆绑到一个文件中?
是的。通常将应用程序分成这么多文件并用 AMD 加载它们只对开发有好处。它有助于保持代码简洁易懂;每个模块都包含视图、模型、控制器并且每个模块都是一个单独的文件,这是非常合乎逻辑的。
然而,大量的请求在生产中没有意义。因此,您应该使用优化器将文件编译并最小化为一个(或几个)文件,以提高性能和用户体验。
如果您使用 RequireJS,请参考http://requirejs.org/docs/optimization.html#wholeproject — 它解释了如何使用r.js
RequireJS 提供的工具。
例如,如果我的应用程序由公共区域、管理和一个非常复杂的注册表单组成,每个都由数百个视图/模型/控制器组成,我可能会将我的代码编译成只有 4 个文件:common、public、admin、sign_up。然后,当用户进入特定区域时,将异步加载适当的文件。