程咬金今天分享一下常用到的前端性能优化方法。全军出击!
1、减少http请求,合理设置http缓存。例如可以合并CSS、合并JS、合并图片(css sprite)。设置缓存可以通过设置http头中的cache-control和expires属性。
2、更新静态资源时,应才用逐量更新的方法,例如更新10个图片,应该一个个地更新,并有时间间隔,以避免忽然大量缓冲失效,造成服务器负载,网络堵塞。
3、启用压缩。在服务器端压缩文件,在浏览器端解压文件。html、css、js文件用GZip压缩,但是这会对浏览器和服务器产生一定的压力。
4、用Lazyload Images技术,例如页面加载时,只加载第一屏的图片,用户继续往后滚时才加载后续图片。
5、css放在页面最上部,js放在页面最下部。因为浏览器是按从上到下解析网页的,把css放在最上部,可以优先被加载,避免先加载body的内容,造成样式错乱和闪屏,把js放最下部,可以防止因请求js文件而阻塞页面。
6、减少cookie的传输次数。
7、CDN加速。CDN,即内容分发网络,本质仍然是缓冲,将静态数据缓冲在离用户最近的服务器上。
8、用反向代理。可把动态资源放在反向代理服务器上,当动态内容改变时,通过内部机制通知反向代理缓存失效,会重新加载最新的动态内容再次缓冲起来。此外,反向代理也可以负载均衡,提高并发性能。
9、css和js代码优化。例如减少对DOM的访问,精简不重复,减少闭包使用等等。避免使用css表达式,避免使用高级选择器,通配选择器。
10、少用花哨的字体。因为用其他地方来的字体,例如google font,通常会使网页加载时间增长不少,甚至加载不成功。有使用过网上那些网页模版的同学都知道,下载下来后打开,是很慢很慢才加载完成网页的,打开代码把头部那些到什么google啊等等国外服务器下载的字体链接删掉,就秒出网页了。
10条应该Aced两次,god like两次了吧。
上面的只是常用的,当然不止这些。工作学习很忙,很少更新文章,也更少是全自己写的技术文章,很多都是网上学习过的,自己积累下来笔记本,总结一下再放上来的知识点,勿喷。