浏览器构成用户界面-地址栏、按钮等浏览器引擎-界面渲染引擎用于查询和操作渲染引擎-显示请求的内容网络-进行网络请求ui后端-用于股指选择框和对话框js解析器数据存储的基础组件。需要注意的是,与大多数浏览器不同,Chrome为每个Tab分配了自己的渲染引擎实例,每个Tab都是一个独立的进程渲染引擎的主进程解析html构建dom树->构建渲染树->layouttherendertree->drawtherendertree渲染引擎开始解析html,将tags转化为胃内容树中的dom节点,然后解析外部的css文件和styles标签中的样式信息,样式信息和html元素中的样式信息会被用来构建另一棵树---渲染树渲染树是由一些包含颜色和大小等属性的矩形组成的,它们会按照正确的顺序使用显示在屏幕上。渲染树构建完成后,会执行布局流程,确定每个节点在屏幕上的确切坐标,接下来就是绘制渲染树,使用ui后端层绘制每个节点,并解析文档以将其解析为有意义的结构——编码一些可以理解和使用的东西。解析的结果通常是表示文档结构的节点树,称为解析树或语法树。语法分析基于文档所基于的语法规则——文档的语言或格式。每种可解析格式都必须有一个由词汇和语法规则组成的特定语法,称为上下文无关语法。人类语言没有这个属性,因此不能用一般的解析技术来解析。html解析器html解析器将html标签解析成解析树,解析书由dom元素和属性节点组成。dom是文档对象模型的缩写。解析算法html不是自上而下解析,也不是自下而上解析。原因是:语言本身的包容性。浏览器对一些常见的非法html有容错机制。中的变化,但在html中,script标签中包含的“document.write”可能会添加一个标签,这意味着在解析过程中实际上修改了输入。浏览器为html开发了一个特殊的解析器。CSS解析css解析器,每个css标识都有特定的解析规律。一个规则集有一个或可选数量的多个选择器脚本。Web的解析方式是同步的。开发者希望在解析一个script标签时立即解析并执行脚本,并阻塞文档的解析,直到脚本执行完毕。如果脚本是外部的,网络必须首先请求资源——这个过程也是同步的,在请求资源之前阻塞文档的解析。这种模式已经维持了很多年,并且在HTML4和HTML5中都有规定。开发者可以将该脚本标记为defer,这样它就不会阻塞文档解析,在文档解析完成后执行。Html5增加了将脚本标记为异步的选项,这样脚本的解析和执行就使用了另一个线程。渲染树的构建比较复杂,后面会单独写
