AMD(延迟加载)真的很有效吗?

时间:2014-05-19 06:54:17

标签: javascript angularjs requirejs lazy-loading amd

我一直在开发一个单页面应用程序,现在变得非常庞大。我从Require JS和AngularJS开始,但是组件太多,加载一个页面会对服务器产生大约40-50个请求(包括模板文件)。

即使为将来的所有请求缓存数据,在第一次尝试时发送40-50个请求也会变得相当昂贵并且在较慢的Internet连接上速度非常慢。

我的理解是,如果我们连接并创建两个脚本文件 - Vendors.js(不经常更改)和Private.js(每个版本更改),页面加载时间会快得多。如果这是真的那么为什么有人甚至会使用requirejs?

1 个答案:

答案 0 :(得分:4)

你只能比较效率,而不是对它的绝对主张。所以你需要问

  

发送40-50个请求比1个连接文件请求更有效吗?

不,绝对不是。虽然由于并行化(可能仍然不太可能)而你可能没有什么优势,但开销很大。

  

不要求不需要的文件比总是加载文件更有效吗?

是的,显然是。

这就是 lazy 加载的全部内容:它仅在需要时才请求文件,而不是过早地下载所有内容。

因此,对于快速应用程序,您需要确定始终(或最常)需要哪些资源,并将它们连接到一个文件。其他很少需要的模块可以单独使用。像你一样考虑改变资源的缓存可以进一步优化。

  

为什么有人甚至会使用AMD呢?

因为它包含模块化。此外,它还支持非常灵活的部署策略 - 从开发中的每个模块独立服务到使用优化器进行生产。无需更改代码文件。

相关问题