浏览器的工作过程

2019-02-28  本文已影响0人  秘果_li
  1. 浏览器使用HTTP协议或者HTTPS协议向服务端请求页面
  2. 将请求回来的HTML代码解析并构建DOM树

浏览器的渲染过程:

  1. 解析HTML,构建DOM tree
  2. 解析CSS(CSS 解析是把 CSS 规则应用到 DOM 树上,为 DOM 结构添加显示相关属性的过程),构建CSSOM tree
  3. 合并DOM tree和CSSOM tree,生成render tree
  4. 布局(layout/reflow),计算各元素尺寸、位置
  5. 绘制(paint/repaint),绘制页面像素信息
  6. 浏览器将各层的信息发送给GPU,GPU将各层合成,显示在屏幕上

解析html 为DOM 树 :

1)HTML字节流解码变为字符流。根据不同编码方式,如UTF-8 GBK来解码
2)词法分析:将字符流解析为一个个词语
3)语法分析:通过不同标签,生成node节点
4)构建DOM树:将node节点组织成DOM树

关于Repaint 和 Reflow

repaint重绘:

如果只是改变某个元素的背景色文字颜色边框颜色等等不影响它周围或内部布局的属性,则只会引起浏览器 repaint,repaint 的速度明显快于 reflow

reflow回流:

当某个部分发生了变化影响了布局,需要倒回去重新渲染, 该过程称为reflow(回流)。比如树状目录的折叠、展开(实质上是元素的显 示与隐藏)等,都将引起浏览器的 reflow。鼠标滑过、点击……只要这些行为引起了页面上某些元素的占位面积定位方式边距大小等属性的变化,都会引起它内部、周围甚至整个页面的重新渲染,所以reflow的代价是比较大的

reflow一定引起repaint,而repaint不一定要reflow

在哪些情况下会导致reflow发生:

优化方法,尽量避免reflow:

参考https://blog.csdn.net/u013100656/article/details/79888106

上一篇 下一篇

猜你喜欢

热点阅读