谷歌旗下的網頁字體調用Google Fonts API旨在幫助用戶加載不同網站時復用資源達到提高加速速度的目的。目前該公司提出了新的解決方案用來提高中文字體的加載速度, 該方案主要利用機器學習對字符集進行排序。我們知道拉丁語系的網絡字體通常大小只有 100~400KB,其他寫作系統的字體大小通常只在200~600KB間。
但是中文系列的字體文件則需完整包含 44,683 個字符,這致使整個字體文件的大小介於15MB~20MB 之間。因此中文網站在調用網絡字體時會佔用伺服器帶寬資源, 同時用戶也需消耗更多的時間去加載網絡字體文件。
谷歌新的解決方案:
本次谷歌提出的新方案時按照機器學習對中文網頁進行掃描,然後再統計哪些字符可能會共同出現在網頁上。最終按照機器學習結果將44,683 個字符排列成102個切片,在瀏覽網頁時瀏覽器會按照順序加載需要的字體。
谷歌本次切片和測試的字體為 Noto Sans SC 切片版,使用切片版字體進行調用時可以極大地降低延遲時間。而谷歌Google Fonts API本身支持跨網站緩存,因此越多的網站使用切片字體用戶加載的時間就會越來越短。本次新增的切片版字體為Noto Sans SC Sliced字體文件,Noto Sans SC版不支持切片但擁有更多字體樣式。
切片字體調用說明:
@import url(//fonts.googleapis.com/earlyaccess/notosansscsliced.css);font-family: 'Noto Sans SC Sliced', sans-serif;
目前谷歌字體調用國內解析地址已經為谷歌中國BGP伺服器,如果你覺得加載緩慢還可使用中科大反向代理。地址:fonts.gstatic.com--->fonts-gstatic.proxy.ustclug.org || fonts.googleapis.com--->fonts.proxy.ustclug.org (均支持HTTPS)
更多具體細節請訪問:https://fonts.google.com/earlyaccess#Noto+Sans+SC+Sliced
測試計劃:
谷歌邀請準備測試和使用切片字體的網站幫助改善切片字體技術,使CJK網頁字體的加載速度可以繼續提高。如果您的網站準備使用切片字體可以在網站頭部附加小型js庫向谷歌發送切片字體的加載以及網頁加載時間。
該庫只收集以下內容:1、下載切片字體的時間;2、下載 Google Fonts CSS 時間;3、網頁整體加載時間。如果您願意幫助谷歌改進中文切片字體技術那麼請在網頁頭部添加以下代碼:(未使用切片字體無需添加)
<script src="//fonts.gstatic.com/ea/timing/v1/mlfont.js" async></script>