Javascript AMD(懒散加载)真的有效吗?
我一直在开发一个单页应用程序,现在它已经变得非常庞大了。我从requirejs和AngularJS开始,但是组件太多了,加载一个页面会向服务器发出大约40-50个请求(包括模板文件) 即使为将来的所有请求缓存数据,在第一次尝试时发送40-50个请求也会非常昂贵,而且在较慢的internet连接上速度会非常慢Javascript AMD(懒散加载)真的有效吗?,javascript,angularjs,requirejs,lazy-loading,amd,Javascript,Angularjs,Requirejs,Lazy Loading,Amd,我一直在开发一个单页应用程序,现在它已经变得非常庞大了。我从requirejs和AngularJS开始,但是组件太多了,加载一个页面会向服务器发出大约40-50个请求(包括模板文件) 即使为将来的所有请求缓存数据,在第一次尝试时发送40-50个请求也会非常昂贵,而且在较慢的internet连接上速度会非常慢 我的理解是,如果我们连接并创建两个脚本文件-Vendors.js(不经常更改)和Private.js(每次发布都会更改),页面加载时间会快得多。如果这是真的,那么为什么有人甚至会使用requ
我的理解是,如果我们连接并创建两个脚本文件-
Vendors.js
(不经常更改)和Private.js
(每次发布都会更改),页面加载时间会快得多。如果这是真的,那么为什么有人甚至会使用requirejs呢?你只能比较效率,而不能对其做出绝对的声明。所以你需要问一下
发送40-50个请求是否比发送一个连接文件的请求更有效
不,绝对不是。虽然由于并行化,您可能没有什么优势(仍然不太可能),但开销太大了
不需要不需要的文件是否比总是加载文件更有效
是的,显然是这样
这就是延迟加载的意义所在:它只在需要文件时才请求文件,而不是过早地下载所有文件
因此,对于快速应用程序,您需要确定始终(或最经常)需要哪些资源,并将它们连接到一个文件中。其他很少需要的模块可以自行开发。将不断变化的资源的缓存考虑在内(就像您所做的那样),可以进一步优化
为什么有人会使用AMD呢
因为它包含模块化。此外,它还支持非常灵活的部署策略—从在开发中独立地为每个模块提供服务到在生产中使用优化程序。无需更改代码文件。您只能比较效率,而不能绝对宣称效率。所以你需要问一下 发送40-50个请求是否比发送一个连接文件的请求更有效 不,绝对不是。虽然由于并行化,您可能没有什么优势(仍然不太可能),但开销太大了 不需要不需要的文件是否比总是加载文件更有效 是的,显然是这样 这就是延迟加载的意义所在:它只在需要文件时才请求文件,而不是过早地下载所有文件 因此,对于快速应用程序,您需要确定始终(或最经常)需要哪些资源,并将它们连接到一个文件中。其他很少需要的模块可以自行开发。将不断变化的资源的缓存考虑在内(就像您所做的那样),可以进一步优化 为什么有人会使用AMD呢
因为它包含模块化。此外,它还支持非常灵活的部署策略—从在开发中独立地为每个模块提供服务到在生产中使用优化程序。不更改代码文件。我喜欢你的答案。。。它增加了一个新的透视图,通过angular的依赖注入模块可以实现模块化。这也有助于单元测试。我问这个问题是为了确保AMD的任何方面我都不知道。您涵盖了所有要点,因此,考虑到这种情况,我决定采用集中方法,这使我更有信心。谢谢我喜欢你的回答。。。它增加了一个新的透视图,通过angular的依赖注入模块可以实现模块化。这也有助于单元测试。我问这个问题是为了确保AMD的任何方面我都不知道。您涵盖了所有要点,因此,考虑到这种情况,我决定采用集中方法,这使我更有信心。谢谢