web前端性能优化总结

1.减少http请求,合理设置http缓存
http协议是无状态的应用层协议,意味着每次http请求都需要建立通信链路、进行数据传输,而在服务器端,每个http都需要启动独立线程去处理。这些通信和服务的开销都很昂贵,减少http请求的数码课有效提高访问性能。
减少http的主要手段是合并Css,合并Javascript,合并图片,将浏览器依次访问需要的javascript和css合并成一个文件,这样浏览器就值需要依次请求,图片页可以合并,多张图片合并成一张,如果每张图片都有不同的超链接,可以通过css偏移响应鼠标点击操作,构造不同URL。
缓存的理论是强大的,家当的缓存设置可以大大的减少Http请求,假设某网站首页,当浏览器没有缓存的时候访问一共会发出78个请求,共600多K数据,而当第二次访问既浏览器已缓存之后访问则仅有10个请求,共20多个K数据。(这里需要说明的是,如果之间F5刷新页面的话效果是不一样的,这种情况下请求数还是以右,不过被缓存资源的请求服务器是304响应,只有Header没有Body,可以节省带宽)
怎样才算合理设置?原则很简单,能缓存越多越好,能缓存越久越好。例如,何少变化的图片资源可以之间通过HTTP Header中的Expires设置一共很长的过期头;变化不频繁而又可能会变得资源可以使用Last-Modifed来做请求验证,尽可能的让资源能够在缓存中待的更久,关于HTTP缓存的具体设置和原理此处就不再详述了。
2.使用浏览器缓存
对一个网站而言,Css、javascript、logo、图标这些静态资源文件更新的频率都比较低,而这些文件又几乎是每次http请求都需要的,如果将这些文件缓存在浏览器中,可以极好的改善性能,通过设置http头中的cache-contro和expires的属性,可设定浏览器缓存,缓存时间可以是数天,甚至是几个月。
在某些时间,静态资源文件变化需要及时应用到客户端浏览器,这种情况,可通过改变文件名实现,即更新javascript文件并不受更新javascript文件内容,而是生成一个新的JS文件并更新HTML文件中的引用。
使用浏览器缓存策略的网站在更新静态资源时,应采用逐量更新的方法,比如需要更新10个图标文件,不宜把10个文件依次全部更新,而是应该一个文件一个文件逐步更新,并有一定的间隔时间,以免用户浏览器忽然大量缓存试效,集中更新缓存,造成服务器负载逐增,网络堵塞的情况。
3.启用压缩
在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效减少通信传输的数据量,如果可以的话,尽可能的将外部的脚本,样式进行合并,多个合为一个。文本文件的压缩效率可达到80%以上,因此HTML、Css、Javascript文件启用GZip压缩可达到较好的效果,但是压缩对服务器和浏览器产生一定的压力,在通信带宽良好,而服务器资源不足的情况下要权衡考虑
4.CSS Sprites
合并css图片,减少请求数的一个好办法。
5.LazyLoad Images
这条策略实际上并不一定能减少HTTP请求数,但是却能在某些条件下或者页面杠加载时减少HTTP请求数,对于图片而言,在页面刚加载的时候可以只加载第一屏,当用户继续往后滚屏的时候才加载后续的图片。这样一来,加入用户只对第一屏的内容感兴趣时,那剩余的图片请求就都节省了。
6.css放在页面最上部,javascript放在页面最下面
浏览器会在下载完成全部Css之后才对整个页面进行渲染,因此最好的做法是将Css放在页面最上面,让浏览器尽快下载css,如果将css放在其他地方比如BODY中,则浏览器有可能还未下载和解析到css就已经开始渲染页面了,折就导致页面由无Css状态跳转到css状态,用户体验比较糟糕,所以可以考虑将css放在HEAD中。
javascript则相反,浏览器在加载javascript后立即执行,有可能会阻塞整个页面,造成页面显示缓慢,因此javascript最好放在页面最下面,但如果页面解析时就需要用javascript,这时放到底部就不合适了
Lazy Load javascript(只有在需要加载的时候加载,在一般情况下并不加载信息内容。)随着javascript框架的流行,越来越多的站点页使用起了框架,不过,一个框架往往包括了很多的功能实现,这些功能并不受每一个页面都需要的,如果下载了不需要的脚本则算的上一种资源浪费 既浪费了宽带又浪费了执行花费的时间。目前的做法大概有两种,一种是为哪些浏览特别大的页面专门定指令一个专用的mini版框架,另一种则是Lazy Load
7、异步请求Callback(就是将一些行为样式提取出来,慢慢的加载信息的内容)
在这里插入图片描述
像以上这种方式直接在页面上写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值