浏览器的渲染过程
渲染页面的过程:http请求阶段 http响应阶段 浏览器渲染阶段
我这里主要写的是第三个阶段
几个定义解释:
进程:process开的每一个程序
线程:thread程序里跑的任务
栈内存 stack 提供环境用于工作
事件循环:event loop是指dom注任务队列到等待任务队列找任务,拿任务到主任务队列中执行,循环这个过程
微任务优于宏任务执行
一、解析Html生成dom树
浏览器拿到服务器代码后,浏览器在内存条中开启一个栈内存用来给代码执行时提供的环境。同时分配一个主线程去一行行执行和解析代码
从上到下一行一行执行,第一次自上而下走完只生成dom树
二、解析css生成cssom树
跟dom树的步骤是一样的
三、dom树和cssom树结合生成渲染树
四、layout回流
根据生成的渲染树,计算设备使用时的确切位置大小
五、painting重绘
根据渲染树以及回流得到的几何信息 得到节点的绝对像素
注:
1、在第一次渲染浏览器的时候一定会发生回流和重绘(这点比较好理解)
2、回流一定会发生重绘 重绘不一定发生回流
六、页面渲染
把像素发送给电脑的gpu(显卡),开绘制页面。
这是最常见的一张浏览器渲染过程图