我一直在开发一个单页面应用程序,现在变得非常庞大。我从Require JS和AngularJS开始,但是组件太多,加载一个页面会对服务器产生大约40-50个请求(包括模板文件)。
即使为将来的所有请求缓存数据,在第一次尝试时发送40-50个请求也会变得相当昂贵并且在较慢的Internet连接上速度非常慢。
我的理解是,如果我们连接并创建两个脚本文件 - Vendors.js
(不经常更改)和Private.js
(每个版本更改),页面加载时间会快得多。如果这是真的那么为什么有人甚至会使用requirejs?
答案 0 :(得分:4)
你只能比较效率,而不是对它的绝对主张。所以你需要问
发送40-50个请求比1个连接文件请求更有效吗?
不,绝对不是。虽然由于并行化(可能仍然不太可能)而你可能没有什么优势,但开销很大。
不要求不需要的文件比总是加载文件更有效吗?
是的,显然是。
这就是 lazy 加载的全部内容:它仅在需要时才请求文件,而不是过早地下载所有内容。
因此,对于快速应用程序,您需要确定始终(或最常)需要哪些资源,并将它们连接到一个文件。其他很少需要的模块可以单独使用。像你一样考虑改变资源的缓存可以进一步优化。
为什么有人甚至会使用AMD呢?
因为它包含模块化。此外,它还支持非常灵活的部署策略 - 从开发中的每个模块独立服务到使用优化器进行生产。无需更改代码文件。