DOM API如何影响HTML解析?
在阅读DOM树是如何创建的过程中,我想到了一个问题,但我找不到答案 根据规范,使用DOM API如何影响HTML解析?,html,dom,web-performance,Html,Dom,Web Performance,在阅读DOM树是如何创建的过程中,我想到了一个问题,但我找不到答案 根据规范,使用文档。write不好,除了其他问题外,它将暂停解析并向标记器输入提供新字符 问题是当一个人使用domapi时,它是什么样子的,例如appendChild。何时执行 据我所知,这将添加已经创建的节点,因此不需要解析和标记化。但是,新节点是立即连接还是在构建“第一个/原始”DOM树之后连接?它会立即连接到DOM,无论它当时处于何种状态。DOM文档总是形成一个一致的树,因此它总是可以安全地添加到 在这方面,添加元素一直都
文档。write
不好,除了其他问题外,它将暂停解析并向标记器输入提供新字符
问题是当一个人使用domapi时,它是什么样子的,例如appendChild
。何时执行
据我所知,这将添加已经创建的
节点
,因此不需要解析和标记化。但是,新节点是立即连接还是在构建“第一个/原始”DOM树之后连接?它会立即连接到DOM,无论它当时处于何种状态。DOM文档总是形成一个一致的树,因此它总是可以安全地添加到
在这方面,添加元素一直都是无害的,但是在解析过程中从DOM文档中删除元素,过去是使旧IE版本崩溃的好方法。事实上,直到IE在IE10中实现HTML5解析算法之前,这个问题一直在某种程度上存在。谢谢,你能提供到源代码的链接吗?不,但它很容易测试。例如,把这个脚本放在源代码<>控制台.log(文档.GETelEntsByTAGNITY(“*”))长度的中间;document.head.appendChild(document.createElement(“meta”));log(document.getElementsByTagName(“*”).length)您将看到DOM文档中的元素数量增加了一个,随后解析的标记进一步增加了元素数量。只是想知道脚本是否是异步的。但是,由于HTML解析在JS执行期间暂停,因此可以预期更改将毫不延迟地反映出来。脚本是异步的,还是延迟的,并不重要。也就是说,当执行脚本并调用appendChild时,DOM将立即更新。async和defer属性的变化是脚本作为一个整体何时执行。