前端性能优化整理

0. 浏览器渲染原理:

  1. 输入网址  -> dns查询 -> dns缓存 -> 三次握手建立连接 -> 浏览器发送请求到服务器 -> 服务器返回html -> 浏览器渲染页面; 
  2. 浏览器渲染过程(webkit为例):
    ① 首先进行dom解析,css解析,构建dom树;(display:none的元素在dom树)
    ② css解析完成css rules加到dom树上,生成render tree(回流reflow阶段,应尽量避免);(display:none的元素不在dom树)
    ③ 经过层叠上下文处理,生成render layer(重绘repaint阶段),可以直接去paint页面,或者去④;
    ④ 层合并后生成graphics layer,然后GPU绘制。

1. 浏览器宿主环境层面:

  1. 由于单线程解析阻塞限制,可以用script defer属性异步加载,样式放头部,脚本放底部;
  2. 利用事件冒泡机制,采用事件委托方法绑定事件;
  3. 浏览器渲染时,开启硬件加速可以生成复合层,复合层交给GPU渲染,但不能滥用;

2. 网络层面:

  1. 减少http请求数量:css、js合并,css sprites,font-icon,base64编码图片,图片懒加载;
  2. 减轻http数据请求大小
  3. 对于cookie性能bug,静态资源分开部署,cdn缓存,

3. 代码层面:

     

猜你喜欢

转载自www.cnblogs.com/colima/p/7268426.html