如何提高 Angular2 应用程序的加载性能?

问题描述:

Angular2 应用加载缓慢,如何提高加载性能?

Angular2 app is loading slow, how can I improve the performance on load?

我使用 Angular2,打字稿和 html5.

I use Angular2, typescript with html5.

目前我的应用程序需要 4 秒才能加载.我使用 Firebase 托管并使用 cloudflare.

currently my app takes 4 seconds to load. I host with Firebase and use cloudflare.

我正在做的事情/信息:

  • 我压缩了图片.
  • 我缩小了 css
  • 我缩小了 js.
  • 我在脚本中使用异步.
  • 我的脚本在我的 .
  • 脚本大约 700kb
  • 我使用了谷歌速度测试并获得了 65%
  • 我使用了我使用的库的缩小版本,例如引导程序等
  • 使用 systemjs.
  • 这是我使用的种子应用程序:https://github.com/mgechev/angular-seed立>

流程:

当应用加载时,它显示蓝屏(这是引导 css),然后 4 秒后应用加载并运行得非常快.但是加载需要4秒.systemjs 缩小到的 app.js 文件似乎减慢了整个应用的速度,并且显示视图的速度不够快.

When the app loads it shows a blue screen (this is the bootstrap css) and then 4 seconds later the app loads and works really fast. But takes 4 seconds to load. It seems the app.js file that systemjs minifies to is slowing the whole app, and not showing the views fast enough.

这是我的网站速度测试:https://www.webpagetest.org/result/161206_F5_N87/

这是我的网站:

https://thepoolcover.co.uk/

如果您需要有关我的应用的更多信息以及我可以做的任何其他事情,请告诉我.

Let me know if you need more information about my app and any other things I can do.

代码拆分"怎么样.

来自 Webpack 站点:

From the Webpack site:

对于大型 Web 应用程序,将所有代码放入单个文件中效率不高,特别是如果某些代码块仅在某些情况下才需要.Webpack 具有将代码库拆分为按需加载的块"的功能. 其他一些打包程序将它们称为层"、汇总"或片段".此功能称为代码拆分".

"For big web apps it’s not efficient to put all code into a single file, especially if some blocks of code are only required under some circumstances. Webpack has a feature to split your codebase into "chunks" which are loaded on demand. Some other bundlers call them "layers", "rollups", or "fragments". This feature is called "code splitting".

链接在这里:

https://webpack.github.io/docs/code-splitting.html

请注意,Angular CLI 使用 Webpack.

Note that the Angular CLI uses Webpack.

此外,请确保如果您的应用程序通过数据调用进行引导,则您不会阻止组件的渲染等待这些调用返回.承诺、异步等.

Also, make sure that if your app bootstraps with data calls, that you are not holding up the rendering of your components waiting on those calls to return. Promises, async, etc.