须要注意的是,不一样于大部分浏览器,Chrome为每一个Tab分配了各自的渲染引擎实例,每一个Tab就是一个独立的进程css
解析html以构建dom树->构建render树->布局render树->绘制render树html
渲染引擎开始解析html,并将标签转化胃内容树中的dom节点,接着它解析外部css文件及style标签中的样式信息,这些样式信息和html元素中的样式信息将被用来构建另外一颗树---渲染树html5
渲染树是有一些包含有颜色和大小等属性的矩形组成,它们将被按照正确的顺序显示到屏幕上。web
渲染树构建好了以后,将会执行布局过程,它将肯定每一个节点上在屏幕上的确切坐标,再下一步就是绘制渲染树,使用ui后端层绘制每一个节点算法
解析一个文档即将其转换为具备必定意义的结构——编码能够理解和使用的东西。解析的结果一般是表达文档结构的节点树,称为解析树或语法树。后端
解析基于文档依据的语法规则——文档的语言或格式。每种可被解析的格式必须具备由词汇及语法规则组成的特定的文法,称为上下文无关文法。人类语言不具备这一特性,所以不能被通常的解析技术所解析。浏览器
html解析器将html标识解析成解析树,解析书是有dom元素及属性节点组成,dom是文档对象模型的缩写。解析算法 html并非由顶向下或者自低向上的解析,
缘由是:网络
浏览器为html制定了专门的解析器。dom
css解析器,css 每一个标识都有特定的正则进行解析。一个规则集合具备一个或者可选个数的多个选择器异步
web的模式是同步的,开发者但愿解析到一个script标签时当即解析执行脚本,并阻塞文档的解析直到脚本执行完。若是脚本是外引的,则网络必须先请求到这个资源——这个过程也是同步的,会阻塞文档的解析直到资源被请求到。这个模式保持了不少年,而且在html4及html5中都特别指定了。开发者能够将脚本标识为defer,以使其不阻塞文档解析,并在文档解析结束后执行。Html5增长了标记脚本为异步的选项,以使脚本的解析执行使用另外一个线程。
这个比较复杂,之后单独来写