Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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
Angular 角度延迟加载是否会减少捆绑包大小?_Angular_Lazy Loading - Fatal编程技术网

Angular 角度延迟加载是否会减少捆绑包大小?

Angular 角度延迟加载是否会减少捆绑包大小?,angular,lazy-loading,Angular,Lazy Loading,我是个新手。我想知道更多关于延迟加载的信息。根据定义,延迟加载模块可以帮助我们减少启动时间。所以我的问题是,假设我的应用程序有50个组件。在使用生产工具构建之后,它会生成900 KB的vendor.js。如果我延迟加载其中的10个组件,它将生成100KB的区块文件“1.chunk.js” 那么在这个场景中,我的vendor.js包大小是否从900 KB减少到800 KB?如果不是延迟加载模块如何帮助我们减少启动时间?否,Angular的延迟加载功能不会减少捆绑包的大小,它只加载捆绑包的一小部分(

我是个新手。我想知道更多关于延迟加载的信息。根据定义,延迟加载模块可以帮助我们减少启动时间。所以我的问题是,假设我的应用程序有50个组件。在使用生产工具构建之后,它会生成900 KB的vendor.js。如果我延迟加载其中的10个组件,它将生成100KB的区块文件“1.chunk.js”


那么在这个场景中,我的vendor.js包大小是否从900 KB减少到800 KB?如果不是延迟加载模块如何帮助我们减少启动时间?

否,Angular的延迟加载功能不会减少捆绑包的大小,它只加载捆绑包的一小部分(按需)-即块,而不是完全加载。因此,对于您的情况,捆绑大小不会从
900 KB减少(如果您累积块的大小,因为在实现延迟加载后,将有几个块要加载),但也不会一次加载
900 KB

延迟加载,顾名思义,仅在请求时加载(即延迟加载)

也就是说,如果在应用程序中实现了延迟加载,则应用程序将只加载加载应用程序所需的相关模块

因此,从本质上讲,它并不是加载应用程序最初并不需要的模块


这就是它如何帮助加速应用程序的加载时间。

延迟加载的主要作用是将组件分解为模块。因此,在路由中,您只需配置主路由并将模块加载为子路由

这会将100个组件分成10个模块,每个模块有10个组件 因此,对于每一个,您将有单独的

module-ngfactory.js
档案。因此,如果您将这100个文件包含在一个模块中(而不是延迟加载),那么您将有一个比这个更大的module-ngfactory.js文件

这种加载是按需进行的,并且仅在请求时进行。因此,装载速度很快

加速角度加载的最佳方法是引入AOT构建。当你使用

ng-s 
这将传输代码并让您知道传输的状态。但包括ts文件在内的所有数据都将发送到浏览器进行调试。所以ts到js的转换是在浏览器中进行的。这很慢

利用

ng-s --aot 

AOT-提前传输将生成js文件并发送到浏览器。所以没有浏览器端的透明。这比使用JIT的速度非常快,因为加载的初始块大小非常小,与大的捆绑包大小相比,它会快速加载,所有模块都会急切地加载。

是的,它会减少初始捆绑包大小,这允许页面在屏幕上显示得更快。