3

是否有助于减少加载时间?(例如仅将当前模块加载到客户端设备?)

我的理解是……

  • 它会增加服务器和客户端之间的请求数量吗?
  • 它会增加你的代码的复杂性。(因为你需要照顾
  • 导入和导出模块,并且在路由中也要特别注意)
4

2 回答 2

9

Angular 支持延迟加载模块。通过这种方式,您可以将应用程序拆分为仅按需加载的部分。

{
  path: 'admin',
  loadChildren: 'app/admin/admin.module#AdminModule',
},

另请参阅https://angular.io/docs/ts/latest/guide/router.html#!#asynchronous-routing

更新

虽然延迟加载不会减少在开始页面需要所有内容时的加载时间,恕我直言,几乎 100% 的 Angular2 应用程序都不是这种情况,但它减少了初始加载的时间,并将加载时间延迟到模块的加载时间。实际需要。Angular 还支持预加载功能,以便在需要延迟加载模块之前加载它们,但仍然不会在初始加载时加载它们。

  • 它会增加服务器和客户端之间的请求数量吗?

请求的数量会更高,但第一个请求加载的数据量会更少。主要思想是减少用户获得第一个屏幕渲染的时间。如果一个应用程序由一些被大量使用而另一些很少使用的部分组成,那么在实际使用之前不加载很少使用的部分通常是一个好主意——这意味着“懒惰”或“按需”——只有在实际需要时才加载。

  • 它会增加你的代码的复杂性。(因为你需要照顾

如果您想充分利用延迟加载,您将需要考虑您的架构。这并不意味着代码需要变得更复杂。您只需要决定将组件、指令和服务放入哪个模块。

  • 导入和导出模块,并且在路由中也要特别注意)

我在这里没有看到太大的区别,因为无论如何您都应该将应用程序拆分为不同的模块(例如每个功能),即使它们不是延迟加载的。

于 2017-01-10T07:54:08.967 回答
2

我不认为它的角度特定问题。如果你用谷歌搜索模块,有很多答案为什么你应该使用模块,例如看看这里:模块

现在简短回答您的问题:

  • 这无助于减少加载时间
  • 它将增加请求的数量
  • 它实际上将有助于通过解耦不相关的功能并且不必污染全局命名空间来降低代码的复杂性
于 2017-01-10T08:01:01.820 回答