Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

中文 WebFont 与活字印刷

  记得以前我曾经有一个对缩略图合并加载的想法 。当时看到商品列表中大量缩略图无法合并加载,一拍脑子就冒出来的想法。不过到目前为止,由于依然兼容到 IE8,所以高端的 Canvas 文件拆分方案还没能投入使用。最近又看到关于使用中文的 WebFont 的做法,于是又冒出了一堆奇葩的想法。

中文的 WebFont

  英文的 WebFont 一直很流行,因为英文只有 26 个字母,全部加载也不会有多大。而中文由于单字太多,想做成 WebFont 很容易实现。但实际上一个网页中显示的文字并不多,其实只要对单个页面加载所需的文字即可。那么问题来了,如何才能在多个页面之间共享已经加载过的文字呢?

活字印刷

  好吧,我思考的问题太低级了,这个问题在一千多年前就已经被解决,实际上就是活字印刷嘛。将每个汉字都分别做成一个字体数据不就 OK 了么?到这里就回到了之前我对缩略图合并的想法中了。因为汉字太多,请求数太大,不合并肯定无法使用。要合并的话就得考虑以什么形式合并,合并后怎么拆分。

关于打包

  对于图片的打包其实大家都普遍在用,CSS Sprites 就是一种传统的打包方式。图片放在一起可以共享颜色表,所以可以得到更高的压缩比率。但对于非图片文件的打包、压缩、解压,这些话题在 Web 上一直是比较冷门的。但如果真有这样的需求,也许还真可以引入个 ZIP 之类方式。

关于存储

  那么我们回到文件拆分的问题上,用什么办法才能将服务器打包后的文件拆分出来并逐个做缓存呢?以前只考虑了图片资源,使用 Canvas 切割,localStorage 存储 DataURL。但现在是处理字体数据,完全是二进制的,和 Canvas 扯不上关系,但是存储依然可以使用 localStorage 来存 DataURL。

兼容与封装

  WebFont、localStorage、DataURL,这些东西都是 IE8 可用的。也就是说,以上想法确实可以实现并使用。但由于目前我也没准备封装,所以这个想法还是先保留,以后真遇上了再考虑封装。

网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^