<div style="display: none;">foo</div>
我正在考虑出于某些(可能是出于懒惰的原因)使用隐藏的内容而使我的DOM膨胀的原因。
现在我想知道这是否会真正影响性能,所以我的问题是:浏览器(谈论最近的浏览器)什么时候解析隐藏的内容?它何时添加到DOM?或何时真正可见?
我要明确要求div的内容,因为必须对容器进行解析-否则浏览器无法知道其隐藏的内容,对吗?;)
我要求所有现代浏览器都使用此功能,因为我认为所有现代浏览器都将以相同的方式进行处理。
哦,也许我应该补充一点,我将根据JS添加这些隐藏的内容。
浏览器遵循一种称为“渲染树”的东西,它是通过结合DOM和CSSOM树而形成的。简而言之,DOM关注的是内容,而CSSOM关注的是应用于文档的样式。生成的“渲染树”仅包含渲染页面所需的可见元素。
通过CSS aka via不可见或隐藏的元素display: none
将不包含在“渲染树”中,而所有影响布局的元素都将包括在内。因此,可以安全地假设您的示例在变得可见或以某种方式影响文档的布局之前不会被渲染。
构造渲染树后,它会经历布局和绘制循环。布局周期计算每个元素在“渲染树”中的位置,然后绘制周期将每个元素显示在屏幕上。
有关渲染树的更多信息,请参阅Google Developers网站基本资源中描述的关键渲染路径。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句