【问题标题】:Do browsers need to re-download customized fonts every time they access a website?浏览器每次访问网站时是否需要重新下载自定义字体?
【发布时间】:2015-03-09 05:07:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: fonts browser


    【解决方案1】:

    虽然这可能有点依赖于浏览器,但每次都会下载字体并且不会缓存在浏览器中。这在 FOUT(无样式文本的 Flash)中很明显。您可以查看更多详细信息和解决方案:https://stackoverflow.com/a/8844467/2407962

    【讨论】:

      【解决方案2】:

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

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

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

      我明白了,当用户访问我的网站时,我的网站总是会获取字体。 即使用户不清除浏览器缓存,网站在访问网站时仍会获取 css 和 html 等字体。

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

      gzip 编码可以帮助你。

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

      【讨论】:

        【解决方案3】:

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

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

        关键是设置正确的 HTTP 响应标头,以使它们能够被缓存,只要您希望它们存在。

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

        您不能保证最终用户会将它们保留在缓存中,但 Cache-Control 标头会告诉浏览器他们可以保留它们多长时间。

        不幸的是,有些用户将他们的浏览器配置为在关闭时刷新缓存,或者只维护一个非常小的缓存。您可以跟踪您的网络服务器日志/统计信息,以查看您的用户是否很好地缓存内容。

        【讨论】:

          猜你喜欢
          • 2015-03-09
          • 2016-02-18
          • 2011-08-08
          • 2013-05-24
          • 2014-04-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-07
          相关资源
          最近更新 更多