如何压缩和优化Angular2应用程序

Hap*_*der 55 angular-cli angular

我想让我的angular-cli应用程序更快!

在此输入图像描述

是的,所以我花了几天时间更新我的NG2应用程序以使用angular-cli.起初这是一个非常令人沮丧的经历,然而,我真的看到了光明并享受着开发过程.显然,努力工作和思想已被纳入框架.

但我的申请很慢:

根据Pingdom的说法 ,我的应用程序比互联网上所有其他网站的21%快.公平地说,这是一个开箱即用的构建,我相信我可以大大提高速度.

玩在线扑克

我的最后一个问题是:如何从根本上减少角度网站的大小?

目前,应用程序:fairplay.poker需要7秒才能加载(如果你住在纽约),所以我相信大多数人都会在它有机会加载之前继续前进.

显然,我需要开始一个从根本上提高应用程序速度的旅程,但我需要你的帮助!(因为我不知道我在做什么:)

什么是标准练习,我在哪里开始排序?

进展:

作为建议,我将在这里更新它们.

1. @cyrix建议的生产就绪版本:ng build -prod

Zip文件下降超过一兆,而Pingdom的新统计数据与原始统计数据相比有了很大改进:

在此输入图像描述

2.建议缩小图像尺寸.

有些图像比它们应该有的大一些,因此尺寸减小了.然而,这并不是一个重大改进,这些数据已经将网站提升到前73%的网站,加载时间略快一些.

在此输入图像描述

3. @yurzui建议使用gzip压缩,所以我启用了这个.显然,它正在工作,总文件大小减少了一半以上(609字节),但这并没有显示在Pingdom上.不过我注意到等级有所改善.

我使用这个站点来检查压缩,这个站点向我展示了如何做到这一点,因为Cpanel似乎在从管理启用时不起作用.该站点似乎也是一个很好的gzip压缩资源.

在此输入图像描述

4 @Yuruzi建议实现浏览器缓存.所以我做到了!

真正有趣的是性能等级的改进,那就是摇滚!加载时间快一点,现在该网站占据了74%的前列.根据Yuruzi的建议,我使用这篇文章作为指导.

在此输入图像描述

5感谢#angularjs频道上的@ wafflej0ck.看来我需要提高我已经改变为概述"AddOutputFilterByType DEFLATE*"压缩类型来完成的GZip 这里.

这似乎增加了网站:

在此输入图像描述

6有人建议使用AOT,因此我从这篇文章中删除了一页.

我浏览了大部分文档,然而,我遇到了一个错误的世界,并决定将其留待以后,希望当AOT更稳定时.

在此输入图像描述

我在GitHub上看到Angular-Cli预装了AOT并且上面的文章没有关系.我不确定这是多么真实但是我在编译代码时运行以下命令:ng build --prod --aot

7.调整htaccess文件中的mod_expires.c.

性能等级已显着提高到98%,加载时间现在不到一秒,网站比测试网站的91%快.

该文件目前看起来像这样:

ExpiresActive On ExpiresDefault"access plus 2 days"ExpiresByType image/x-icon"access plus 1 year"ExpiresByType image/jpeg"access plus 1 year"ExpiresByType image/jpg"access plus 1 year"ExpiresByType image/png"access plus 1 year "ExpiresByType image/gif"访问加上1年"ExpiresByType应用程序/ x-shockwave-flash"访问加1个月"ExpiresByType text/css"访问加1个月"ExpiresByType text/javascript"访问加1个月"ExpiresByType application/pdf"访问加1个月"ExpiresByType应用程序/ javascript"访问加1周"ExpiresByType应用程序/ x-javascript"访问加1周"ExpiresByType文本/ javascript"访问加1周"ExpiresByType文本/ html"访问加600秒"ExpiresByType应用程序/ xhtml + xml"访问加600秒"

在此输入图像描述

在这个时候,我不禁想到我现在正在处理收益递减的问题.

  1. 删除了css中包含的不需要的字体和未使用的图像.

加载时间已经下降,现场性能现在为100%

在此输入图像描述

  1. 慢DNS和SSL

我注意到大量的加载时间是由于DNS和SSL造成的.为了解决这个问题,我注册了一个免费的CloudFlare帐户,因为他们几乎到处都有节点,这必然会加速一些事情......

确实如此.可悲的是,来自PingDom的纽约主持人已被删除,但来自达拉斯的统计数据看起来很有希望将负载时间减少到一秒钟之内!

在此输入图像描述

其他好文章

这家伙也有关于优化角度位置的好文章

Jar*_* K. 6

有一些事情可以让您提高应用程序的速度,其中包括:

  1. 尽可能使用延迟加载模块链接
  2. 生产资料建立一个项目
  3. 使用提前(AOT)编译(link)。
  4. 使用Angular-Universal,可以将项目渲染的一部分移至服务器端

从2019年开始:给定选项时,默认情况下会启用AOT(Ahead of time)编译ng build --prod