前端通过字体子集化方案来优化字体渲染体验
2021/4/15 18:25:25
本文主要是介绍前端通过字体子集化方案来优化字体渲染体验,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字体子集化
- 在很多时候,中问字体包提交会很大,在一下交互场景下,需要等待指定字体文件下载完成再渲染字体,造成的体验非常差
问题常见
- 场景1:对固定的几个文字,渲染不同的字体样式
- 场景2:输入不同的文字,渲染不同的字体样式
本地加载
每次下载字体文件后,将下载的字体文件load到DOM节点
async function loadFonts() { /* myfont: @font-face对应使用的字体 url: 字体文件对应url */ const font = new FontFace('myfont', 'url(myfont.woff)'); await font.load(); document.fonts.add(font); document.body.classList.add('fonts-loaded'); }
字体子集化方案
/* url: 字体文件url textName: 需要下载的文字 */ const font = await getFontApi(url, textName) document.fonts.add(font)
究极方案
- 对于场景1,把一系列的字体文件合并为一个字体文件进行下载,减少文件请求次数
- 对于场景2,下载大的字体文件时,利用浏览器空闲时间下载
requestIdleCallback
,通过indexedDB
缓存文件
业务场景
- 下载指定字体文件,加载到document上
- 对于全量下载的文件,通用字体时,通过
indexedDB
缓存到浏览器本地 - 对于设计师的自定义字体,通过对文件生成
MD5
来判断文件是否发生更改来更新缓存
资料
- fontmin
- font-spider
- font-collecrot 字体分割工具
- fontforge 字体合并
这篇关于前端通过字体子集化方案来优化字体渲染体验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09一定要避坑:关于微信H5分享,温馨提示你不要再踩坑了!!!
- 2024-05-09本地项目放到公网访问!炒鸡煎蛋!
- 2024-04-07金融企业区域集中库的设计构想和测试验证
- 2024-03-11前端CSS的工程化——掌握Sass这四大特性就够了
- 2024-02-21h5关联css样式(html怎么和css关联)-icode9专业技术文章分享
- 2024-02-07Firefox禁止远程字体加速网页加载及图标字体补充安装
- 2024-02-07一个菜鸡前端的3年总结-「2023」
- 2024-01-18最火前端Web组态软件(可视化)
- 2024-01-12程序员提效 x10 的必备开源“神器”
- 2024-01-11前端可以监控静态资源的时间吗-icode9专业技术文章分享