首页 > 解决方案 > 关于将节点标记为脏的浏览器策略

问题描述

假设我有这样的抽象模板:

<div>
  <div id="header">
    <h1>Hello, {{model.subject}}!</h1>
    <p>How are you today?</p>
  </div>
</div>

where{model}将与一些不太重要的框架相关(没有虚拟 DOM 或 smth)

假设model -> subject值改变了。浏览器会仅重新绘制h1节点还是重新绘制整个#header节点?我的意思是浏览器如何将节点标记为“脏”?

来自本文的“脏位系统”部分:https ://www.html5rocks.com/en/tutorials/internals/howbrowserswork/#Layout

“为了不为每一个小的变化做一个完整的布局,浏览器使用一个“脏位”系统。一个被改变或添加的渲染器将自己和它的孩子标记为“脏”:需要布局。有两个标志:“脏”,以及“孩子很脏”,这意味着虽然渲染器本身可能没问题,但它至少有一个需要布局的孩子。”

所以问题是:某个节点的任何变化都会影响它的兄弟节点吗?到p目前的例子^。以及关于此的实际浏览器策略是什么。

标签: javascriptdombrowser

解决方案


推荐阅读