前文提到通过压缩合并js和css来减少HTTP请求,同样的,也可以通过合并image来减少HTTP请求。
方法很简单,就是通过css的background来设置标签的背景,包括背景图片的文件名,是否平铺,从图片的哪个位置开始显示,图片显示的宽度和高度。我们可以把所有的图片都合并在一个图片里,然后用background来截取显示。
这样,只需要进行一次HTTP请求就能拿到网站很多的图片了,而且合并之后图片的大小也比原来图片大小的总和要小得多,减小了网络开销。
当然这样做也是有代价的,主要是网站的可维护性下降了,要修改图片会变得比较麻烦。其次,不能直接使用image标签,需要使用div+css来显示。所以你需要在网站的性能和可维护性之间做出权衡。
另外,像背景平铺这样的工作,通过css sprite是做不到的,必须使用单独的image