Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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 AMD(懒散加载)真的有效吗?_Javascript_Angularjs_Requirejs_Lazy Loading_Amd - Fatal编程技术网

Javascript AMD(懒散加载)真的有效吗?

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

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

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


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

你只能比较效率,而不能对其做出绝对的声明。所以你需要问一下

发送40-50个请求是否比发送一个连接文件的请求更有效

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

不需要不需要的文件是否比总是加载文件更有效

是的,显然是这样

这就是延迟加载的意义所在:它只在需要文件时才请求文件,而不是过早地下载所有文件

因此,对于快速应用程序,您需要确定始终(或最经常)需要哪些资源,并将它们连接到一个文件中。其他很少需要的模块可以自行开发。将不断变化的资源的缓存考虑在内(就像您所做的那样),可以进一步优化

为什么有人会使用AMD呢


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

您只能比较效率,而不能绝对宣称效率。所以你需要问一下

发送40-50个请求是否比发送一个连接文件的请求更有效

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

不需要不需要的文件是否比总是加载文件更有效

是的,显然是这样

这就是延迟加载的意义所在:它只在需要文件时才请求文件,而不是过早地下载所有文件

因此,对于快速应用程序,您需要确定始终(或最经常)需要哪些资源,并将它们连接到一个文件中。其他很少需要的模块可以自行开发。将不断变化的资源的缓存考虑在内(就像您所做的那样),可以进一步优化

为什么有人会使用AMD呢


因为它包含模块化。此外,它还支持非常灵活的部署策略—从在开发中独立地为每个模块提供服务到在生产中使用优化程序。不更改代码文件。

我喜欢你的答案。。。它增加了一个新的透视图,通过angular的依赖注入模块可以实现模块化。这也有助于单元测试。我问这个问题是为了确保AMD的任何方面我都不知道。您涵盖了所有要点,因此,考虑到这种情况,我决定采用集中方法,这使我更有信心。谢谢我喜欢你的回答。。。它增加了一个新的透视图,通过angular的依赖注入模块可以实现模块化。这也有助于单元测试。我问这个问题是为了确保AMD的任何方面我都不知道。您涵盖了所有要点,因此,考虑到这种情况,我决定采用集中方法,这使我更有信心。谢谢