文章目录
一、为什么要减少HTTP请求?
1、性能黄金法则
只有 10% ~ 20%的最终用户响应时间花在接收请求的HTML文档上,剩下的 80%~90%时间花在HTML文档所引用的所有组件(图片,script,CSS,flash等等)进行的HTTP请求上。
2、如何改善(即减少组件花费的响应时间)?
改善响应时间的最简单途径就是减少组件的数量,并由此减少HTTP请求的数量;
HTTP连接产生的开销
域名解析——TCP连接——发送请求——等待——下载资源——解析时间
疑问?
DNS缓存:本身DNS解析是有DNS缓存的。
Keep-Alive:本身HTTP1.1版本默认是通过 Keep-Alive 方式进行操作的,在此过程中,不会去花费TCP握手的时间,但是本身在此过程中,我们的HTTP是串行请求的,它还是会浪费一定的时间。
打破谣言
- 查找DNS缓存也需要时间,多个缓存就要查找多次有可能缓存会被清除;
- HTTP1.1协议规定请求只能串行发送,也就是说一百个请求必须依次逐个发送,前面的一个请求完成才能开始下个请求(即会造成响应时间的影响)。
二、减少HTTP请求的方式
1、图片地图
- 图片地图允许你在一个图片上关联多个URL。目标URL的选择取决于用户单击了图片上的哪个位置;
- 我们可以通过使用五个分开的图片,然后每个图片对应一个超链接,产生了5个HTTP请求,我们的目标是要减少HTTP请求;
- 将五个图片合并为一张图片,然后以位置信息定位超链接;
- 把HTTP请求减少为一个,可以保证设计的完整性和功能的齐全性。
例子:使用 <map><area></area></map> 标签
① 未使用图像地图的例子:
http://stevesouders.com/hpws/imagemap-no.php
② 使用了