浏览器内核渲染引擎工做流程
浏览器解析流程
一、加载
- 资源加载器开启http线程,获取html页面。
- 获取页面以后,交由html解释器解析称dom节点,并构建成dom树。
- 在构建dom树的时候,若是遇到script标签,则调用javascript引擎进行解析。
- 在构建dom树的时候,若是遇到css,图片,音频,则调用资源加载器进行资源的下载
- 注:这里面script文件的下载是阻塞dom树生成的,而css,图片,音频文件的下载是和dom树的建立并行的。
二、渲染
- css文件下载以后,调用css解释器解释css文件,并依赖dom树生成renderObject树*
- renderObject树再根据网页的层次结构,构建renderLayer树和绘图上下文
- 最后由绘图上下文绘制最终的图像。
用户输入www.baidu.com过程
- 根据url进行缓存查找IP地址,若是缓存没有,寻找DNS服务器。最终找到url对应的IP地址。
- 调用资源管理器,开启http线程,http GET baidu的网页。传输层三次握手。
- 获取网页以后,交友html解释器解析成DOM树
- 遇到了css资源和图片资源,异步下载
- 遇到script标签,阻塞下载并解析
- 发现js代码改变了dom结构,引发dom树的改变
- dom树构建完毕,开始调用css解析器解析css文件,生成renderobject树
- 根据层次结构生成renderlayer树和绘图上下文。
- 根据绘图上下文调用操做系统的绘制工具绘制网页。
欢迎关注本站公众号,获取更多信息