先瞎扯扯
前端性能优化基本上就是:传输层面:减少请求数,降低请求量,执行层面:减少重绘&回流。 传输层面基本是优化的核心点,而这个层面的优化要对浏览器有一个基本的认识,比如:
1: 网页自上而下的解析渲染,边解析边渲染,页面内CSS文件会阻塞渲染,异步CSS文件会导致回流
2:浏览器在document下载结束会检测静态资源,新开线程下载(有并发上限),在带宽限制的条件下,无序并发会导致主资源速度下降,从而影响首屏渲染
3:浏览器缓存可用时会使用缓存资源,这个时候可以避免请求体的传输,对性能有极大提高
减少请求数
1:合并样式、脚本文件
2:合并背景图片
3:CSS3图标、Icon Font
降低请求量
1:开启GZip(http://blog.sina.com.cn/s/blog_67da14f40101sw29.html)对css html进行压缩
2:优化静态资源,jQuery->Zepto、阉割一些插件代码、去除冗余代码
3:图片无损压缩
4:图片延迟加载
5:减少Cookie携带(题外话:cookie携带还是很有用的,ajax默认带cookie ,例如做免登陆时,用户勾选记住密码,此时往客户端写入cookie,下次访问带cookie请求 可以直接访问,注意对cookie加密)
很多时候,我们也会采用类似“时间换空间、空间换时间”的做法,比如:
6:缓存为王,对更新较缓慢的资源&接口做缓存(浏览器缓存、localsorage、application cache这个坑多)
7: 按需加载,先加载主要资源,其余资源延迟加载,对非首屏资源滚动加载
20 May 2017