本篇文章我们来学习前端优化:“减少不必要的传输”。
我们重点看下面这几个方面:
- 合并HTTP请求。
- 启用压缩。
- 减少cookie。
- 斟酌顺序。
这四个分别什么意思呢?我们一一来进行解释。
合并HTTP请求
首先来说“合并http请求”。
http的协议,我们都知道它是一个无状态的应用层协议。这意味着每次http的请求,都需要建立通信链路,进行数据的传输。而在服务端,每个http请求都需要启动独立的线程去处理,那么这些通信和服务的开销都需要消耗资源。
那么,我们第一步减少HTTP请求的数目,可有效的提高访问的性能。你每次连接都耗资源,那么我把请求数减少,是不是资源就能节省一些了?
合并http请求是各大网站经常用的一种手段,我们来看一下京东。
大家可以注意一下,这个请求当中,“.com”后面是不是有两个问号?然后在后面两个js之间有一个一个逗号,这是干什么呀?其实这个就是做HTTP请求的合并。
这个合并,有什么好处呢?比如说我原来需要向后端发送十个请求,那么我把这个十个请求,两两合并就合并成五个,那么我建立连接,和后端服务器对我的这个连接的处理就能减少五个。那么在这种合并的操作手段中,最常见的合并是合并js,合并CSS,合并图片。
将浏览器需要的资源合并到一个请求中去访问,这样的话我们就会尽量的去降低成本。合并请求还有一个好处是什么呢?就是浏览器,它对并发的请求数是有限制的,比如说Chrome它允许六个请求同时并发,火狐它同时允许八个请求。
再举一个例子啊,如果原来我们有12个请求,如果这12个请求在不合并的情况下,如果是Chrome的话,需要等六个请求回来再去执行后面的六个请求,如果这12个请求,我们把它两两做合并的话,那么Chrome一次性就能把这这些请求的数据全部拿回来。