创建 DOM 节点的 Javascript 流程

标签 javascript dom dom-events

如果我将一些元素插入 DOM 树

document.getElementById("settings-details-form").innerHTML = "<h2 id=\"ddd\">hello</h2>"; 

在 DOM 用新元素更新之前,下一行 JS 代码会被执行吗?

进行 DOM 更新时 JavaScript 执行模型是什么?

最佳答案

当执行下一行时

  • DOM 已更新,例如,您可以查询您添加的元素的尺寸
  • 窗口尚未渲染,这意味着您不必担心用户看到不完整的状态:窗口将在代码结束时渲染

请注意,大多数浏览器都会进行优化:例如,如果您不查询尺寸,则在需要时才会计算尺寸(最终用于窗口渲染)。这就是为什么当您不在中间查询 DOM 布局时进行大量 DOM 更改会更快,这样回流仅计算一次(请参阅 Mozilla notes on HTML Reflow )。确切的流程高度依赖于浏览器引擎,但从功能上讲,无论浏览器是什么,下一行代码都会看到更新的 DOM。

关于创建 DOM 节点的 Javascript 流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20698570/

相关文章:

javascript - 除一项之外的每一项的数组回调

javascript - 使用带有 $httpBackend 的 spyon 的 Jasmine 测试不工作

javascript - 在 Angular Material 中关闭多选下拉菜单时触发事件

javascript - 使用 Jquery 在单击鼠标时反转表单元素的位置

javascript - 是否可以以编程方式模拟按键事件?

javascript - 使用 Javascript 触发单选按钮

javascript - 在 Jquery 每个循环中使用 TypeScript 变量

javascript - 调用函数时开始旋转并在函数结束时停止的微调器按钮

javascript - 无法使用document.getElementById捕获div的值

javascript - 当浏览器检索缓存的 html 页面时,在 JavaScript 中获取当前时间