【发布时间】:2017-03-01 12:05:11
【问题描述】:
我从seed 创建了 angular2 项目,并且在我的初始页面上添加了几个 angular 组件。其中一些加载图像 - 这相对较慢,但实际问题是:
- 我有一个很大 (~1mb) 的捆绑包,我目前正在努力使其更小,关注 a guide on the subject。
- 初始加载只发出几个请求,加载包(通常约 3 秒)并等待 Angular 应用程序启动(约 1.4 秒)。之后,它开始加载所有组件并加载它们的资源(字体、图像等)。请求如下所示:
恐怕即使在我减小了包大小之后,应用程序仍会在不发出任何请求的情况下引导 1.5 秒,然后再次等待大约 1 秒以加载组件的资源。我认为这将导致大约 3 秒以上的加载时间。由于我的应用程序相对简单,我发现这是不可接受的。
Q1:有没有办法提前加载组件资源,然后在组件加载时引用它们?
Q2:有没有办法让应用程序启动更快?
我也愿意接受其他建议:)
编辑:
我正在使用随种子提供的 AoT 编译,并且我已采取措施减小 app.js 文件的大小。问题仍然存在于app.js 下载结束和第一个组件的资源调用之间的gap。
更新(2016-12-19):
我(目前)所做的只是在服务器上:
- 启用了 HTTP2 支持,从而显着提高了速度。
- 启用 GZIP,将 JS 的大小减少了 5 倍以上。
这些服务器配置在 NGINX 和 Apache 上是微不足道的,因此值得一试。
现在,尽管网站加载速度更快,但这些更改并不能解决最初的问题(问题 1 和问题 2)。因此,我正在寻找一些其他方法,如果您在我的位置,您可能也想遵循:
更新(2018-06-11):
以下是一些帮助我提高初始负载的材料:
- Angular Performance Workshop - Manfred Steyer
- Angular — Faster performance and better user experience with Lazy Loading - by Ashwin Sureshkumar
就我而言,延迟加载发挥了重要作用。
【问题讨论】:
-
您是否设法让您的应用程序更快?我最近使用了延迟加载路线,这稍微缩短了我的加载时间,但仍然很慢
-
我更新了答案以包含我到目前为止所做的事情。
-
for Enabled the HTTP2 你是怎么做到的?我使用 cloudflare,我认为它包括启用 HTTP2。
-
这是一个服务器配置。我不知道你是如何在 cloudflare 上做到这一点的。 Google 是您的朋友。
-
我也遇到了同样的问题....你有解决上述问题的办法吗?
标签: performance angular load