【发布时间】:2014-10-26 09:48:32
【问题描述】:
Google PageSpeed 有一条建议要求网络开发者Use efficient CSS selectors:
避免匹配大量 元素可以加速页面渲染。
详情
当浏览器解析 HTML 时,它会构建一个内部文档树 表示要显示的所有元素。然后匹配 元素到各种样式表中指定的样式,根据 标准 CSS 级联、继承和排序规则。在 Mozilla 的 实现(可能还有其他),对于每个元素, CSS 引擎通过样式规则搜索以找到匹配项。引擎 从右到左评估每个规则,从最右边开始 选择器(称为“键”)并在每个选择器中移动,直到它 找到匹配项或丢弃规则。 (“选择器”是文档 规则应适用的元素。)
根据这个系统,引擎必须评估的规则越少 更好。 [...]。之后,对于包含大量 元素和/或大量 CSS 规则,优化定义 规则本身也可以提高性能。关键是 优化规则在于定义与 可能并且避免不必要的冗余,以允许样式 无需花费时间评估规则即可快速找到匹配项的引擎 不适用。
此建议已从当前的 Page Speed Insights rules 中删除。现在我想知道为什么这条规则被删除了。与此同时,浏览器在匹配 CSS 规则方面是否变得高效?这个建议还有效吗?
【问题讨论】:
-
好,现在我们可以花时间编写 CSS 而不必担心浏览器性能了。
-
我看不出这是一个寻求异地资源的问题。问题是 关于 一个场外资源 - 它被引用在你身上。这看起来更像是一个没有非常具体或明确答案的问题,或者只有非常具体的人才能提供这样的答案。
标签: html css performance css-selectors pagespeed