text-rendering: optimizeLegibility
是大多数现代浏览器的默认设置。(编辑:不是真的,但留给后人。
但是,text-rendering: optimizeSpeed
的性能有相当大的提高。
目前,我内联了我的首屏/关键样式,并使用 rel=preload 异步延迟了我的下折叠样式。
我的问题是,最初在我的批判风格中使用text-rendering: optimizeSpeed
,然后在我的延迟/异步样式表中切换到text-rendering: optimizeLegibility
,是否有效*或值得**?
* 有效性定义为以您期望的方式工作。最初使用"优化速度",然后当延迟样式表异步加载时,改用"优化易读性"。
** 值得定义为与在我的 SS 中切换样式的(简单(过程成比例的任何可忽略不计的性能提升。
好的,我想我已经回答了我自己的问题,所以我在这里留下一些东西留给后人:
-
我问题核心的答案是:从初始渲染时间到重绘,一揽子应用
optimizeLegibility
很慢。所以我的结论是,即使异步加载也不值得,因为它会延迟异步样式表的加载并导致 FOIT [1](尤其是应用于长字符串文本时(。 -
正如BoltClock指出的那样,Chrome和Safari默认使用
auto
,而只有Firefox在20px阈值下智能切换。此外,Chrome和Safari将auto
视为optimizeSpeed
。[2] 因此,无论如何,在我的上述样式中声明 oS 基本上是多余的。- 我认为也许最重要的是,这表明
optimizeLegibility
还没有达到可以无特殊例外地使用它的地步,因为Chrome和Safari甚至不习惯使用除speed
之外的任何东西,而其他选项(如precision
(没有指定。
- 我认为也许最重要的是,这表明
-
不仅在一些较旧的浏览器中缺乏支持,实际上在其他浏览器中也存在破坏交易的错误,[2]这意味着
text-rendering: optimizeLegibility
对于渐进式增强是不可行的(至少通过推迟折叠样式的 PE(。
最后,我在 caniuse 的 repo 上提交了一个问题,以纠正现代浏览器默认为optimizeLegibility
的错误主张(感谢 BoltClock 指出这一点(。
TL;DR它有效吗?从技术上讲,但第一部分是多余的。值得吗?这不仅不值得,而且存在性能和未解决的错误问题。