Load Cufón font dynamically

前陣子我曾實驗利用 Cufón 在網頁上嵌入中文字型,當時的實驗結果是中文字型轉換為 JavaScript 格式,再經過 gzip 壓縮後,其大小雖然已經比原來的 TrueType 檔案小——以微軟正黑體為例,原始字型檔為 14 MB,經轉換後為 5.3 MB——但對於網路傳輸而言仍然過大,因此無法實際使用。

最近發現 Google App Engine 的大量傳輸 API 已經開放了,於是試著寫個東西來玩。我把 Cufón 字型的每個 Glyph 個別儲存到 Datastore,然後根據頁面的實際需要,重組成僅含所需字集的新檔案,藉此縮小所需傳輸的檔案大小。

 字型檔案大小
使用 gzip 壓縮不使用 gzip 壓縮
範例1:載入完整字型 10.5 MB 34.1 MB
範例2:只載入所需的字集 22.3 KB 61.4 KB

目前的作法是把需要的字集直接用 GET 告訴伺服器,但這樣未來可能會遇上 GET 長度限制問題…… 我想到的解法是可改用 JavaScript 載入這個檔案,用 POST 傳遞字集資訊,同時或許也能用 JavaScript 自動整理出所需的字集(目前是用手動整理 :p)。

2 Comments

  1. 范例2 不使用 gzip 压缩,为什么更小一点?

  2. @fireyy 因為寫反了… XDrz

2 Pingbacks

  1. on Jul 28, 2009
  2. on Dec 1, 2009
Leave your thoughts
  • You can use some HTML in your comment.
  • Your comment may not display immediately due to spam filtering. Please wait for moderation.