前端的性能对业务逻辑有多大影响?
性能:
我们对网页的性能进行统计分析,首先应当确定哪些因素会对网页的性能带来影响,一般来说,前端HTML文档的结构是否合理,外部资源是否进行了压缩合并,静态内容是否使用了CDN加速,服务端是否配置了负载均衡,是否采取了缓存策略,以及客户端的带宽等状况都会对页面的性能造成影响。
性能体系的建立可以分为以下几种:现状评估和建立指标、技术方案、执行、结果评估和监控。
现状评估和建立指标:
想要做好性能优化,正确的评估现状和建立指标是最为关键的一步,它往往又是会被轻视的一步。作为一个开发工程师,指标又要考虑两个因素,一方面对用户来说,什么样的性能指标能更好的评估它的体验。另一方面是对公司来说,什么样的指标会影响业务价值。
性能问题可以分为几个方面:页面加载性能、动画与操作性能、内存电量的消耗。
首先这三部分中,页面加载性能跟用户的流失率有非常强的关联性,而用户正是公司非常看重的。那么用什么来衡量也页面加载性能呢?最容易想到的就是用户平均加载的时间。如果它加载的时间稍微长那么一点,给用户带来的体验就非常的差,一般来说当加载低于一定数字,用户体验感就差别不大了。这个数字大概是一秒。有了大概的目标,下面就该看看具体的过程了。以加载过程为例,来简单分析一下在输入url后按下回车到底发生了什么。首先我们必须要了解几件事情:从域名到IP地址,需要用DNS协议查询、HTTP协议是用TCP传输的,所以会有TCP建立连接过程、如果使用HTTPS,还要有HTTPS交换证书、每个网页还要有图片等请求。从这里我们可以看出来,页面的加载时长,不但和体积有关系,还跟请求数有很大关系。
然后我们可以使用以下等方案来减少性能的消耗:
使用客户端控制的强缓存策略。降低请求成本:HTTP DNS由客户端控制,隔一段时间主动请求DNS获取域名IP,不走系统的DNS。TCP和TLS连接复用,由服务端升级到HTTP2,尽量合并域名。
减少请求次数:JavaScript、CSS打包到HTML,用JavaScript控制图片异步加载和懒加载,小型图片使用data-uri(大概意思就是把图片进行编码,移动端不易使用,解码消耗CPU)。
减少传输体积:尽量使用SVG、gradient等代替图片。根据机型和网络状况控制图片清晰度。对底清晰度的图片使用锐化来提升体验,设计上避免大型背景图。