Chrome浏览器的新“缓存分区”系统会影响Google字体的性能

2020-12-05 04:12:33

十月份Google Chrome浏览器进行的更改影响了数百万个网站的Google字体服务的性能。

浏览器的缓存系统通过充当网站使用的图像,CSS和JavaScript文件的临时存储系统来工作。存储在缓存中的文件通常可在多个站点上重复使用,而不是让浏览器为每次加载页面/选项卡重新下载每个文件。

但是随着2020年10月上旬Chrome 86的发布,谷歌已经彻底改变了Chrome整个缓存系统的工作方式。

Google并未对所有网站使用一个大的缓存,而是对其进行了分区。 Chrome缓存,现在将基于每个网站和每个资源存储资源。

虽然这是用户安全的一大胜利,它可以防止某些形式的Web攻击,但此更改影响了围绕旧缓存系统设计的Web服务。

这些服务之一是Google字体,这是一个于2010年启动的网络门户,它托管自定义字体。

Google字体允许网站所有者通过一行JavaScript或CSS代码加载Google服务器上托管的所有字体。

Google字体于2010年推出时,其背后的想法是,当用户在互联网上导航时,其浏览器会将Google字体加载到浏览器缓存中,而用户则无需在每个新网站上重新加载自定义字体。反过来,这将使网站在加载新页面时速度提高,因为它们已经在缓存中包含了字体。

但是,在本周的一篇博客文章中,来自柏林的前端开发人员Simon Wicki指出,Chrome 86附带的新缓存分区系统实际上已使Google字体无效,因为新的缓存系统将迫使用户重新下载他们访问的每个网站上的所有字体。

Wicki现在说,有了缓存重用的好处,网站所有者可以从Google Fonts网站下载字体并将其托管在自己的服务器上,而不是从Google服务器加载字体的旧方法(参见图片)以上)。

正如Wicki所指出的那样,自托管自定义字体的想法并不是什么新鲜事,并且自2018年以来一直在浮动,当时一些Web开发人员进行了研究并得出相同的结论[1、2、3]。

无论哪种方式,即使Google字体是字体CDN似乎即将结束时,该服务仍将保持运行状态,并作为Internet上可免费下载的开放许可字体的最大存储库之一运行。

根据BuildWith网络统计服务提供的数据,Google字体目前在4270万个网站上使用。

除了Chrome之外,Safari自2013年以来还使用了缓存分区系统。由于缓存分区系统具有许多安全优势,因此Mozilla也表示有兴趣在Firefox中添加一个。 Edge,Vivaldi,Opera,Brave和其他基于Chromium的浏览器也有望在未来几个月内增加对缓存分区的支持。