一、减少http请求
http协议是无状态的应用层协议,意味着每次http请求都需要建立通信链路、进行数据
传输,而在服务器端,每个http都需要启动独立的线程去处理。这些通信和服务的开销都很
昂贵,减少http请求的数目可有效提高访问性能。
主要手段:合并css、js、图片。将访问需要的js和css合并成一个文件,这样浏览器就
只需要一次请求。图片也可以合并,多张图片合并成一张,如果每张图片都有不同的超链
接,可通过偏移响应鼠标点击操作,构造不同的url。也可以将图片转成二进制并生成
base64编码
利用h5的应用程序缓存,将不常改变的css、js、图片等资源缓存在浏览器。
将脚本或样式卸载页面里。对于一些特殊的页面,例如首页,我们把样式和脚本都写在了
页面里,根本没有分离出来,他们不会产生http请求,当然,也不会被缓存,这是被牺牲的代价.
工具:百度fis3,gulp,
http://www.360doc.com/content/12/0802/05/21412_227764450.shtml
http://alloyteam.github.io/gopng/
二、合理设置http缓存
三、启用压缩
在服务器端对文件进行压缩,在浏览器对文件解压缩,可有效减少通信传输的数据量。
如果可以,尽可能将外部的脚本、样式进行合并,多个合为一个。文本文件的压缩效率可达
到80%以上,因此html,css,js文件启用gzip压缩可达到较好的效果。但是压缩对服务器
和浏览器产生一定的压力,在通信宽带链好,而服务器资源不足的情况下要权衡考虑。
四、lazyload
实际上并不一定能减少http请求数,但是却能在某些条件下或者页面刚加载时减少http
请求数。对于图片而言,在页面刚加载的时候可以只加载第一屏,当用户继续往后滚屏的时
候才加载后续的图片。这样一来,加入用户只对第一屏的内容感兴趣时,那剩下的图片请求
就都节省了。
五、css放在页面最上部,js放在页面最下面
浏览器会在下载完成全部css之后才对整个页面进行渲染,因此让浏览器尽快下载css。
如果将css放在其他地方,比如body中,则浏览器有可能还未下载和解析到css就已经开始
渲染页面来,这就导致页面由无css状态跳转到css状态,用户体验比较糟糕,所以可以考虑
将css放在head中。