在阅读如何创建DOM树HTML5 spec: 8.2.1 Overview of the parsing model期间,我想到了一个问题,我找不到答案。
根据使用document.write
的规范是不好的,除了其他问题,它将暂停解析并将新字符提供给tokenizer输入。
问题是当使用DOM API时它是如何形成的,例如。 appendChild
。什么时候会被执行?
据我了解,这将添加已创建的Node
,因此不需要解析和标记化。但是,新节点是立即附加还是在构造“第一个/原始”DOM树之后附加?
答案 0 :(得分:3)
它立即发生在当时处于状态的DOM中。 DOM文档始终形成一致的树,因此可以始终安全地添加它。
在这方面,追加元素一直是非常无害的,但是在解析过程中从DOM文档中删除元素,这曾经是崩溃旧版IE的好方法。事实上,直到IE在IE10中实现HTML5解析算法之前,这个问题仍然存在。