1.通过浏览器的网络进程拿到对应的html字符串,生成一个渲染任务放到渲染主线程的消息队列中
2.在渲染主线程的事件循环机制下,开始执行渲染任务
3.(computed style)通过对html字符串进行解析,生成dom树,并且启动预解析线程对外部的css以及外部的js进行下载,由于html和css以及js都是要在渲染主线程上面执行的,遇到css就解析css,遇到js就停止解析html,执行js,因为js的操作可能会影响dom树,所以必须先执行js,通过解析最后会生成dom树和cssom树(js性质的树)
4.遍历每一个dom树节点,计算出每一个节点的样式,得到最终的dom树
5.layout(布局),根据dom树计算出每个节点的几何信息,最后生成layout树
6.分层,根据生成的layout树进行分层
7.绘制,对每一层生成对应的绘制指令集,渲染主线程的任务结束,将生成的指令集传递给合成线程
8.对每一层对应的指令集进行分块
9.对每一块的进行光栅化 (传递给GPU线程处理)光栅化实际就是对每一块中的每一个像素点进行分配好对应的色值 优先视口附近的
10.draw 通过GPU线程,调用显卡进行绘制生成最后的画面