是时候说再见了Google字体

2020-12-04 21:01:52

我在原型和1000万+ MAU产品中使用了Google字体。它非常容易上手,并提供了惊人的字体发现。这就是为什么目前仍在超过4200万个网站上使用它的原因!

这种便利有其代价:性能。许多人已经指出了多次请求的成本。如果您希望继续提高速度,那么最好下载已使用的Google字体并对其进行自我托管。

这不是什么新鲜事。实际上,它已经倡导多年了。甚至Google自己也建议其他人在他们的Google I / O ‘18关于网络性能的内容中自托管字体。

从本质上讲,即使拥有所有字体和CSS优化功能,Google字体也不会比自托管字体快。

Sia写了一篇很棒的文章,她比较了Google字体和自托管字体在没有CDN影响的情况下的性能。

因此,如果最重要的性能是对自托管字体的支持:是什么使我们的开发人员相信Google字体至少与自托管方法一样有效?

Google字体设计用于在全球CDN上分发,并从中获得缓存的好处。用户通过所述CDN请求字体。很有可能他们已经从其他站点下载了字体资源。

“ […]我们的跨站点缓存的设计目的是,您只需在任何网站上加载一次字体,并且我们将在使用Google字体的任何其他网站上使用相同的缓存字体。”

自2020年10月发布Chrome v86以来,字体之类的跨站点资源不再可以在同一CDN上共享。这是由于浏览器缓存已分区(Safari已经使用了多年)。

在此Google帖子中,他们解释了分区浏览器缓存是什么。引入它只是为了防止可能的跨站点跟踪机制。

Safari确实关心隐私。自多年以来,它一直绕过这种跨站点跟踪攻击。然后终于有了Chrome。其他基于Chromium的浏览器仍然需要发出信号或实现该功能。

无论是否将其缓存在CDN上,都会为每个网站重新下载Google Fonts资源。自托管字体以获得更好的性能。旧的性能参数不再有效。

Simon Wicki是柏林的自由前端开发人员。在Vue,Angular,React和Ionic中充满激情和流利。对Tech,frontend&非小说类书籍