您现在的位置是:首页 > 名人名句

纯前端字体文件优化实践,字体文件压缩93%!

作者:胡椒时间:2024-03-27 08:00:54分类:名人名句

简介  文章浏览阅读2.3k次,点赞2次,收藏7次。高保真数据可视化大屏页面,设计部同学在提供UI图的同时还会提供UI图中使用到的字体文件,例如:思源字体、微软雅黑等类型的字体。但是,通常来说UI提供的字体包都很大,大都在十几M,加载非常缓慢,严重影响用户体验。从上图

点击全文阅读

背景

高保真数据可视化大屏页面,设计部同学在提供UI图的同时还会提供UI图中使用到的字体文件,例如:思源字体、微软雅黑等类型的字体。前端需要在CSS中定义自定义字体即可和UI图字体保持一致。但是,通常来说UI提供的字体包都很大,大都在十几M,加载非常缓慢,严重影响用户体验。toB产品没有CDN,只能从字体文件本身去做优化操作。

优化策略:

使用压缩率更高的字体类型(推荐woff2格式)。删除生僻字以及不常见的特殊字符。

基础环境

为了避免因为基础环境不一致而产生意料之外的问题,基础环境要尽可能保持一致。

依赖

版本

说明

node.js

14.21.2

推荐14lts

@hayes0724/web-font-converter

1.0.5

常见字体转换

font-spider

1.3.5

过滤字体数据

ttc2ttf

1.0.96

ttc转ttf格式,@hayes0724/web-font-converter的补充工具。

安装压缩工具

npm install -g font-spider ttc2ttf @hayes0724/web-font-converter

字体文件转换为ttf格式

源文件:思源黑体.otf

font-spider 只压缩ttf格式的字体文件,所以要先将otf转ttf

如果源字体文件是 ttc 格式则可以通过 ttc2ttf 转为 ttf 格式

# 源字体文件 otf 格式font-convert --pathIn='./SourceHanSansCN-Bold.otf' --pathOut='./SourceHanSansCN-Bold.ttf'# 源字体文件 ttc 格式# 在 msyhsb001.ttc 文件目录下执行ttc2ttf ./msyhsb001.ttc ./

压缩字体文件

字体文件体积大的原因主要是中文有上万个字体,可是常见的中文字体只有3000个左右,删除特殊字符以及生僻字,可以大大减小字体文件的体积。

# 新建 font.html# 在 div.text3 元素中添加常见字体# 执行以下命令font-spider ./font.html# 输出结果可查看字体已经被压缩切大小只有 1039.424 KB

ttf格式转woff2格式

源文件大小8.6M,经过删除生僻字以及转为woff2格式后文件大小为552KB。

font-convert --pathIn='./SourceHanSansCN-Bold.ttf' --pathOut='./SourceHanSansCN-Bold.woff2'

验证

从上图可以看出,字体压缩比确实是高达93%,对比网络加载速度,同样6M带宽字体文件由原来的18s到目前的500ms,用户访问网页带来飞升一般的体验。

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句