2

在阅读如何创建 DOM 树的过程中HTML5 规范:8.2.1 解析模型概述,我想到了一个问题,但我找不到答案。

根据规范,使用document.write是不好的,除了其他问题外,它会暂停解析并将新字符提供到标记器输入中。

问题是当一个人使用 DOM API 时会是什么样子,例如。appendChild. 什么时候执行?

据我了解,这将添加已经创建Node的,因此不需要解析和标记化。但是,新节点是立即附加还是在构建“第一个/原始”DOM 树之后附加?

4

1 回答 1

3

它会立即发生在 DOM 中,无论它当时处于什么状态。DOM 文档始终形成一致的树,因此始终可以安全地添加。

在这方面附加元素一直是无害的,但是在解析过程中从 DOM 文档中删除元素曾经是使旧版 IE 崩溃的好方法。事实上,这个问题在某种程度上一直持续到 IE 在 IE10 中实现 HTML5 解析算法。

于 2016-09-10T11:02:40.297 回答