主要考虑的方面:从内容上压缩,在请求上减少,页面加载更快,响应更及时,更好的用户体验。
减少http请求方面:
- 用css精灵(css sprites、雪碧图)。
- 和缓存相关
1)添加Expire/Cache-Control头(设置缓存时间,使用缓存资源,不发送http请求):Expire属于HTTP/1.0,头内容是资源在本地的过期时间,Cache-Control属于HTTP/1.1,存的内容是缓存距离过期时间的毫秒数。
2)配置Etag标签:判断缓存内容和服务器原始内容是否一致,如果一致,就不用服务器提供了。 - 合并文件:合并脚本文件和样式文件,减少http请求的数量。
- 图片懒加载(LazyLoad Images):减少页面刚加载时的http请求数,因为刚加载的时候可以只加载第一屏,当用户继续滚屏的时候再加载后续的图片。
速度更快方面:
- 使用CDN(内容分发网络content delivery network):提高网站内容的传输速度,使用cdn,就相当于在离你最近的一个位置放置了一台副本服务器,可以以最近的距离,最快的速度获取到服务器上的内容。缺点就是,多配置服务器会使成本较高。
- 多域名:资源文件可以并行下载,但是dns查找次数也会增加。现代浏览器有自己的缓存机制,有dns缓存可以减少dns查找次数。
内容压缩方面:
- 用Gzip压缩(减小http响应的大小,减小文件体积):从HTTP/1.0开始,web客户端都默认支持http请求中有Accept-Encoding文件头的压缩格式,Accept-Encoding:gzip。
- 压缩JavaScript和CSS:去除代码中不必要的字符减少文件大小,从而节省下载时间。
优化用户体验方面:
- 将CSS文件放到页面最上面:提高网页渲染性能,避免出现白屏或者没有样式的内容。
- 将script文件放在最下面:因为脚本的加载和执行时阻塞的,所以如果放到页面之前会延长页面加载时间,网页一片空白,造成不好的用户体验。所以放到页面下面,先让页面正常显示出来。
- js和css都放到外部文件中:提高js和css的复用性,减少页面体积,提高js和css的可维护性。且目前浏览器都能缓存js和css文件,外置它俩不仅没有增加http请求次数,还减少了html文档的大小。
参考:
https://blog.csdn.net/liujie19901217/article/details/52074018
https://blog.csdn.net/mahoking/article/details/51472697
https://blog.csdn.net/grandPang/article/details/51329289
网友评论