浏览器是否需要在每次访问网站时重新下载自定义字体?

时间:2015-01-11 07:31:14

标签: fonts browser

假设我有一个网站,其中我有自定义字体,所有.otf文件大约是1MB。

现在,当用户访问网站时,将下载字体。问题是,这些字体是否会一直保留在用户的浏览器中?即即使用户关闭浏览器,字体仍会保留在那里吗?或者.otf文件就像所有.css .html文件一样?哪个可以缓存,但需要再次下载?

如果是后者,我们该如何处理这个问题?我的意思是让用户下载1MB字体对UX不利。其他网站如何处理这个问题?是否使用了某种本地存储?

3 个答案:

答案 0 :(得分:0)

虽然这可能与浏览器有点依赖,但每次都会下载字体,而不是在浏览器中缓存。 FOUT(无格式文本的Flash)就是明证。您可以查看此内容以获取更多详细信息和解决方案:https://stackoverflow.com/a/8844467/2407962

答案 1 :(得分:0)

  

假设我有一个网站,其中我有自定义字体,以及所有   .otf文件大约是1MB。

我一直在我的一个网站上使用谷歌字体,一般只有2.6KB。

  

现在,当用户访问网站时,将下载字体。该   问题是,这些字体是否会保留在用户的浏览器中   一直安装?即即使用户关闭浏览器,   字体会留在那里吗?或者就像所有的.otf文件一样   .css .html文件?哪些可以缓存但需要下载   再次?

我知道,我的网站总是在用户访问网站时获取字体。 即使用户没有清除他们的浏览器缓存,网站仍然会在访问网站时获取css和html等字体。

  

如果是后者,我们该如何处理这个问题?我的意思是制作   用户下载1MB字体对UX不利。其他网站如何处理   有这个问题?是否使用了某种本地存储?

gzip编码可以帮到你。

这是我的经验,当我检查时,我找不到其他方法。可能是其他人可以提出更好的方法。

答案 2 :(得分:0)

页面中的所有外部包含都可以缓存:例如

  • 图片(GIF,JPG,PNG)
  • CSS样式表
  • JavaScript / JSON文件
  • 音频
  • 视频

关键是设置正确的HTTP响应标头,以便只要您喜欢它们就可以缓存它们。

//PHP style, other server lang syntaxes will vary
header("Cache-Control: max-age=31536000"); //365 days

您无法保证最终用户将其保留在缓存中,但缓存控制标头会告诉浏览器 可以 保留它们多长时间对

不幸的是,有些用户将其浏览器配置为在关闭时刷新缓存,或仅维护非常小的缓存。您可以跟踪您的Web服务器日志/统计信息,以查看您的用户是否正在缓存。