3

一旦您使用 r.js 之类的东西将所有模块捆绑到一个大文件中,我发现有点难以理解 AMD 架构的异步方面存在于何处。

与简单地允许 require.js 在不阻塞 DOM 的情况下异步加载谨慎的 js 相比,使用 r.js 有什么好处(除了缩小)?当然,仅加载应用程序当前需要的内容(vanilla require.js)要比加载应用程序可能需要的所有内容(编译的 r.js)更快。

4

2 回答 2

2

如果您决定制作一个捆绑包,AMD 没有单一的好处,只有缺点,因为您得到的只是一堆代码与样板文件混合在一起。

如果您正在寻找干净的解决方案,请尝试 CommonJS 风格,没有样板,并且使用正确的工具,它比 AMD 快得多(因为异步磁盘操作比异步网络操作更快),使用 CommonJS,您的代码也变得与环境无关,所以您可以在服务器(Node.js)和客户端上加载你的模块,不需要额外的配置/黑客攻击。

检查Webmake(我是它的作者)我用它开发了几年。我从来没有回头。

还检查一些 AMD -> CommonJS 转换成功案例:http ://esa-matti.suuronen.org/blog/2013/03/22/journey-from-requirejs-to-browserify/

于 2013-04-13T09:51:25.877 回答
0

我会给你一个我公司的例子。我们有单页模块网络应用程序(应用程序中的每个选项卡都是由独立的团队开发的)。每个团队都有自己的代码,并使用一些通用部分。在模块中使用 require 访问公共部分,因此他们确信它是可访问的(bundlead 脚本和服务器上的路径相同)。这提供了为模块制作捆绑文件的可能性,这些文件里面没有所有内容。

于 2013-04-13T05:33:51.357 回答