Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 因为r.js将AMD模块编译成一个大文件,所以;异步;在异步模块定义中?_Javascript_Require_Amd_R.js - Fatal编程技术网

Javascript 因为r.js将AMD模块编译成一个大文件,所以;异步;在异步模块定义中?

Javascript 因为r.js将AMD模块编译成一个大文件,所以;异步;在异步模块定义中?,javascript,require,amd,r.js,Javascript,Require,Amd,R.js,我发现,一旦您使用类似r.js的东西将所有模块打包到一个大文件中,就有点难以理解AMD体系结构的异步方面存在于何处 与简单地允许require.js在不阻塞DOM的情况下按需异步加载离散js相比,使用r.js的好处(除了缩小)是什么?当然,只加载应用程序当前需要的内容(vanilla require.js)要比加载应用程序可能需要的所有内容(编译的r.js)更快。我将为我的公司举个例子。我们有单页模块的web应用程序(应用程序中的每个选项卡都由单独的团队开发)。每个团队都有自己的代码,并使用一些

我发现,一旦您使用类似r.js的东西将所有模块打包到一个大文件中,就有点难以理解AMD体系结构的异步方面存在于何处


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

我将为我的公司举个例子。我们有单页模块的web应用程序(应用程序中的每个选项卡都由单独的团队开发)。每个团队都有自己的代码,并使用一些公共部分。 在该模块中,用户需要访问公共部件,因此他们确保可以访问该部件(bundlead脚本中的路径与服务器上的路径相同)。
这为模块提供了一种捆绑文件的可能性,因为模块中没有所有内容。

如果您决定将AMD捆绑成一个包,那么AMD没有任何好处,只是缺点,因为您得到的只是混合了样板文件的代码包

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

检查(我是它的作者)这几年我和它一起发展。我从未回头

还可以查看一些AMD->CommonJS过渡成功案例: