随着互联网的不断发展,越来越多的人都在学习互联网编程开发技术,而今天我们就一起来了解一下,浏览器渲染步骤包含哪些。
一.浏览器解析渲染过程?
(1)浏览器解析HTML源码,然后创建一个DOM树。
在DOM树中,每一个HTML标签都有一个对应的节点(元素节点),并且每一个文本也都有一个对应的文本节点,DOM树的根节点就是documentElement,对应的是html标签
(2)浏览器解析CSS代码,然后创建一个CSSOM树。
解析CSS的时候会按照如下顺序来定义优先级(递增):浏览器默认设置用户设置外联样式内联样式标签样式
(3)根据DOM树和CSSOM来构建一个渲染树(rendertree)。
(4)当渲染树创建完成之后,浏览器就可以根据渲染树直接把页面绘制到屏幕上。
二.渲染树(rendertree)和DOM树的关系?
(1)在DOM树构建的同时,浏览器会构建渲染树。(为了提高用户体验,浏览器并不会等到所有HTML文档加载完成之后才建立渲染树并渲染,而是会在从网络层获取html文档的同时把已经接收到的局部内容先渲染出来)
(2)DOM树完全和html标签一一对应,而渲染树会忽略(即不包含)不需要渲染的元素(如head,样式为display:none的元素等)
(3)渲染树中每一个节点都存储着对应的CSS属性
三.reflow(重排,回流)和repaint(重绘)?
reflow:浏览器要花时间去渲染,当它发现了某个部分发生了变化并且影响了布局,就需要倒回去重新渲染
repaint:如果只是改变了某个元素的背景颜色或文字颜色等,不影响元素周围或内部布局,就只会引起浏览器的repaint,重画其中一部分。
reflow比repaint更花费时间,也就更影响性能,所以在写代码时应尽量避免过多的reflow。