前端性能提升策略有哪些
性能提升,指的是在确保系统功能正确运行的基础上,使其运行速度加快,缩短完成特定功能所需的时间。为实现这一目标,我们应尽可能提前进行性能提升,未雨绸缪,甚至最好将其作为一项定期任务进行。
一项合理的性能提升策略应包括以下四个步骤:
明确提升目标。提升的目标可以是提升用户体验,例如消除卡顿明显的页面和操作,也可以是节省服务器带宽流量、减轻服务器压力等。无论如何,你必须有一个明确的目标。许多人只是为了提升而提升,忽略了目标,甚至一开始就没有考虑过,只是不断追求更优秀的性能指标。
确定达到何种程度。
提升是永无止境的,为了避免陷入前面所说的无意义的性能黑洞,我们最好能够根据实际的业务情况设定一个相对客观的标准,代表提升到何种程度。例如,根据当前的性能指标与业务量对比,发现最大并发数可能会超过当前的2倍,那么此时提升至争取提升3倍,至少保证能提升2.5倍,是一个比较合理的标准。
3、找到瓶颈点
大部分情况下,流程上的提升远胜于语法级别的提升,所以我们最好还是能够借助一些客观数据,以获得更多的运行环境相关的信息,来找到整个“木桶”上最短的一块“板”。如整个系统的总体架构、服务器的信息等,便于定位到底性能的瓶颈点在哪。
4、着手提升
做提升的正确思路一般符合以下两个方向。
第一,空间换提升。一个节点顶不住就多复制一个节点出来,独一份的数据导致资源竞争得厉害,就多复制一份数据出来。
第二,距离换提升。数据从服务端经过层层处理返回到客户端觉得慢的话,那么能不能直接保存在客户端,或者至少是离客户端尽可能近的地方。
性能提升只是Web前端人员需要掌握的基础技能之一,想要获得高薪,你需要具备扎实的理论基础以及丰富的实战经验,而这些需要系统的学习以及较多的项目积累。
前端性能提升有哪些方法
前端性能提升的方法有:
一、减少HTTP请求数
常用的减少HTTP请求数有以下几种:
1、合并图片。当图片较多时,可以合并为一张大图,从而减少HTTP请求数。经常变化的图片可能不太合适,变化相对稳定的就可以考虑。合并大图除了能减少HTTP请求数外,还可以充分利用缓存来提升性能。
2、合并压缩CSS样式表和JS脚本,他们的共同目的都是为了减少HTTP连接数。
3、去掉不必要的请求。开发写代码或者系统升级之后残留的无效请求连接。
4、充分利用缓存。这里说的缓存是客户端侧缓存或者说浏览器缓存。Expires头信息是客户端侧缓存的重要依据,格式类似于Expires:sun,20 Dec 2017 23:00:00 GMT。
如果当前时间小于Expires指定的时间,浏览器就会从缓存中直接获取相关的数据信息或html文件,如果当前时间大于Expires指定的时间,浏览器会向服务器发送请求来获取相关数据信息。
以Apache为例,可在Apache的配置文件httpd.conf中设置Expires。
二、图片优化
优化方法:
1、尽可能的使用PNG格式的图片,它相对来说体积较小。
2、对于不同格式的图片,在上线之前最好进行一定的优化。
3、图片的延迟加载,也叫做懒加载。
三、使用CDN
CDN即内容分发网络,可以使用户就近取得所需内容,解决网络拥挤的状况,提高用户访问网站的响应速度。
四、开启GZIP
GZIP即数据压缩,用于压缩使用Internet传输的所有文本资源。开启GZIP的方法很简单,到对应的web服务配置文件中设置一下即可。以Apache为例,在配置文件httpd.conf中添加。
五、样式表和JS文件的优化
一般我们会把CSS样式表文件放到文件的头部。比如,放到<head>标签中,这样可以让CSS样式表尽早地完成下载。对应JS脚本文件,一般我们把他放到页面的尾部。
六、使用无cookie域名
无cookie域名的概念:当发送一个请求时,同时还要请求一张静态的图片和发送cookie时,服务器对于这些cookie不会做任何使用,也就是说这些cookie没什么用,不要随请求一同发送。