webkit 浏览器内幕之HTML 解释器和DOM 模型

290 阅读2分钟

DOM 标准

DOM 全称为文档对象模型,它可以是一种独立于平台和语言的方式访问和修改一个文档的内容和结构 。 DOM 结构构成基本的要素是‘节点’,而文档的DOM 结构就是由层次化的节点组成。在DOM 模型中,节点的概念很宽宽泛,整个文档就是一个节点,称为文档节点,HTML 中 tag 也是一种节点,称为元素节点。

HTML 解释器

HTML 解释器 的工作就是将网络或者本地磁盘获取的HTML 网页和资源从字节流解释成 DOM 结构

  • 词法分析,在进行词法分析之前,解释器最先做的是检查该网页内容使用的编码格式,以便后面使用合适的解码器。如果解释器在HTML 网页中找到了设置编码格式。 webkit 会使用相应的解码器将字节流转换成特定格式 的字符串。
  • XSSAuditor 验证词语 当词语生成之后,webkit 需要 XSSAuditor 来验证词语流。主要是针对安全方面的考虑。 经过词法分析解释之后,将被webkit 用来构建 DOM 结点。

DOM 事件机制

事件在工作过程中使用两个主体,第一个是事件,第二个是事件目标。事件处理最重要的部分是事件捕获和事件冒泡这两种机制。

  • webkit 事件处理机制 基于 webkit 的浏览器事件处理过程,首先是做的hitTest,查找事件发生处的元素,检测该元素有无监听者,如果网页的相关节点注册了事件的监听者,那么浏览器会把事件派发给webit 内核来处理。同时浏览器也可能需要理解和处理这样的事件。这主要是因为,有些事件浏览器必须响应从而对网页作默认处理。