13
A
回答
7
您提出了两个单独的问题。
延迟下载实际的字体文件本质上是不可避免的,尽管你可以通过不包括任何你实际不需要的东西来帮助它,从而最大限度地减小文件大小。根据您使用的服务/方法,这可能需要减少包含的字符集(/语言),以及重量和样式。
至于无风格文本的闪光,这是半不可避免的,部分原因是上面的下载时间问题。但是一旦你尽可能地减少了这些,你应该实现一个字体加载器来更好地控制这部分。这里的TypeKit's (open-sourced) implementation和brief explanatory blog post。底部的示例具体说明了FOUT;你几乎可以把它放到你自己的代码中。
以下是一些information from FontDeck关于使用Google的加载程序与他们的服务,这也将导致使用Google的WebFonts服务。
任何其他服务,你必须开始做自己的研究,但这些是一般概念。使用这些工具,您可以使用一些脚本和CSS规则来隐藏受影响的文本,直到字体准备好用于演示,以及其他一些用途。这不是完全的想法,但至少可以防止FOUT。一旦超过这个初始时间,浏览器的缓存应该接管并使其在很大程度上没有实际意义。
0
A)通过设置缓存控制和Content-Type正确地高速缓存中的字体:
Cache-Control:public, max-age=15552000
Content-Type:application/x-font-woff;charset=UTF-8 (differs for other font files)
B)避免为Vary头部HTTPS。只设置Accet-Encoding。 的不同而不同:HTTPS breaks IE font loading.
Vary:Accept-Encoding
https://github.com/typekit/webfontloader
C)A和B应当在第一次请求之后很好地工作,当浏览器已经加载的字体。如果这还不够,请尝试Web Font Loader。
相关问题
- 1. 避免UIView触摸延迟
- 2. 的SQLAlchemy:浅拷贝避免延迟加载
- 3. 对实体延迟加载
- 4. 延迟加载谷歌字体类型
- 5. 预加载图像/声音以避免延迟
- 6. 避免加载延迟集合在Spring数据JPA
- 7. 延迟加载
- 8. 延迟加载
- 9. 延迟加载
- 10. 预加载@字体脸字体停止Firefox闪烁/延迟
- 11. 延迟加载,延期加载和实体加载实体框架
- 12. 的jquery - 延迟加载 - 设置延迟
- 13. 如何避免GoogleAppEngine DataStore延迟?
- 14. 实体框架延迟加载和ICollection
- 15. 实体框架延迟加载
- 16. 实体框架延迟加载问题
- 17. 延迟加载的DLL有用于避免链接特定的功能吗?
- 18. 实体框架 - 延迟加载,加载子实体问题
- 19. 延迟加载3.2.6
- 20. nhibernate延迟加载
- 21. 延迟加载MirrorType
- 22. RecyclerView延迟加载
- 23. 延迟加载DLL
- 24. Firebase延迟加载
- 25. UIwebview延迟加载
- 26. 延迟加载CollectionViewSource?
- 27. Laravel延迟加载
- 28. Firebase延迟加载
- 29. gwt延迟加载
- 30. 延迟加载XmlDocument
当您参考您遇到的信息时,实际链接到它通常是一个好主意。 – 2012-07-20 13:34:08
这是一篇关于此主题的新帖子,我发现它很有帮助:https://michael.stapelberg.de/Artikel/font-loading – 2017-08-29 08:33:29