06-浏览器渲染原理

什么是渲染?

06-浏览器渲染原理_第1张图片

 render,HTML字符串 --渲染--> 像素信息

URL地址是一个字符串,HTML、css、js都在里面

可以把渲染想象成一个函数,上代码:

function render (html) {
	/*  第一行
		第二行
	*/
	return pixels;
}

渲染时间点

06-浏览器渲染原理_第2张图片从输入URL地址按下回车到显示页面,发生了什么?

重点是两部分,网络:拿HTML,渲染:渲染

渲染流水线

06-浏览器渲染原理_第3张图片

 

解析HTML、parse HTML

形成DOM树和CSSOM树

06-浏览器渲染原理_第4张图片

 06-浏览器渲染原理_第5张图片

 06-浏览器渲染原理_第6张图片

06-浏览器渲染原理_第7张图片

除了浏览器默认样式表之外,其他的JS都能操作

下载插件,可以在线观看Chrome源码

06-浏览器渲染原理_第8张图片

 搜索Chromium,复制网址06-浏览器渲染原理_第9张图片

 06-浏览器渲染原理_第10张图片

 这样就可以在线查看Chrome浏览器源码了

查看页面样式

06-浏览器渲染原理_第11张图片

 一般框架里用的比较多

/* 给页面所有div加边框 */
document.styleSheets[0].addRule('div', 'border: 2px solid #c00000 !important')

 06-浏览器渲染原理_第12张图片

CSS代码不会阻塞html解析 ,因为他们处在不同的线程上

06-浏览器渲染原理_第13张图片

JS代码会阻塞html解析 ,遇到JS需要暂停,因为JS可能会修改DOM树

 样式计算 - Recalculate Style

06-浏览器渲染原理_第14张图片

 CSS属性值的计算过程,层叠,继承

06-浏览器渲染原理_第15张图片

 06-浏览器渲染原理_第16张图片

 最终样式会把预设值变成绝对单位

比如颜色 "#f40" 变成  "rgb(255, 0, 22)"

或者 rem 变成  px

 获取最终样式

getComputedStyle()

06-浏览器渲染原理_第17张图片

位置和宽高是相对包含块来说的,相对第一个定位的元素,不一定是父元素,父元素没有会一直往外查找,直到有定位的包含块

06-浏览器渲染原理_第18张图片

 浏览器默认样式表规定head是隐藏的,它不会出现在布局树中,因为它没有几何信息06-浏览器渲染原理_第19张图片

 06-浏览器渲染原理_第20张图片

 06-浏览器渲染原理_第21张图片

 06-浏览器渲染原理_第22张图片

 06-浏览器渲染原理_第23张图片

 layout布局树里面不是DOM对象,但是它可以间接拿到一些属性,比如

document.body.clientHeight
635
document.body.clientWidth
1275
document.body.offsetHeight
635

 分层 - Layer

06-浏览器渲染原理_第24张图片

 06-浏览器渲染原理_第25张图片

06-浏览器渲染原理_第26张图片 

 06-浏览器渲染原理_第27张图片

 绘制 - Paint 06-浏览器渲染原理_第28张图片

 06-浏览器渲染原理_第29张图片

 06-浏览器渲染原理_第30张图片

 分块 = Tiling  合成线程

06-浏览器渲染原理_第31张图片

 06-浏览器渲染原理_第32张图片

 光栅化 - Raster

 06-浏览器渲染原理_第33张图片

 06-浏览器渲染原理_第34张图片

 

画 - Draw

06-浏览器渲染原理_第35张图片

 06-浏览器渲染原理_第36张图片

 06-浏览器渲染原理_第37张图片

 

 

面试题:浏览器是如何渲染页面的?

06-浏览器渲染原理_第38张图片

06-浏览器渲染原理_第39张图片

06-浏览器渲染原理_第40张图片

 06-浏览器渲染原理_第41张图片

 06-浏览器渲染原理_第42张图片

什么是reflow?

重新布局(排版)

改变几何信息都reflow

06-浏览器渲染原理_第43张图片

 06-浏览器渲染原理_第44张图片

 06-浏览器渲染原理_第45张图片

 

什么是repaint?

06-浏览器渲染原理_第46张图片

 

06-浏览器渲染原理_第47张图片

 

为什么transform

06-浏览器渲染原理_第48张图片

 

06-浏览器渲染原理_第49张图片

 

06-浏览器渲染原理_第50张图片

 

你可能感兴趣的:(大师之路——每日一练,前端)