需要JS(AMD)在底层工作,将文件缩小到单个文件

Require JS(AMD) working under the hood on minification of files in to a single file

本文关键字:文件 缩小 单个 工作 JS AMD 在底层 需要      更新时间:2023-09-26

Require.js看起来是一个基于模块的代码的完美解决方案。正如它在其网站上提到的那样,它根据需要加载依赖项(所以它更快)。但是当我们使用他们的r.js插件将代码库缩小到单个文件时,它会加载整个组合文件。

那么这是否意味着它是一个正常的异步加载,而不是按需加载?或者rjs内部是否有任何优化技术来有效地做到这一点?

按需加载单个JS模块有点分散注意力,因为将所有代码放入单个最小化的包中通常是更好的主意,即使大多数用户只会使用其中的一个子集。gzip你的资源将减少你的脚本的大小进一步33%-50%(至少),所以你可能最终与一个总比单个JPEG文件小(当然,这取决于你的项目有多大)。

当加载单个文件时,网络本身突然成为最大的瓶颈——浏览器限制了并行下载的数量(所以你最终会顺序加载文件),并且每个资源都有连接协商开销。再加上它使r.js配置复杂化的事实,我想说,只有当模块/库真的大并且只有一小部分用户使用时,才应该考虑按需加载。

AMD模块的真正好处实际上不是异步加载,而是代码组织——有了整齐组织的模块和定义良好的依赖关系,编写糟糕或不可测试的代码要困难得多。