時間:2024-03-09 13:32:57 作者:泰龍 瀏覽量:57
Google Chrome 團隊向來只關(guān)注兩個問題:第一如何減少內(nèi)存使用量、第二如何提高網(wǎng)站加載速度 (玩笑話,不過這些年谷歌在這些方面的變更是最多的)
現(xiàn)在谷歌正在研究一種新的共享字典壓縮技術(shù)來大幅度提高網(wǎng)站資源的壓縮效率,從而進一步縮短網(wǎng)站的加載時間。
下面是一個簡單的例子:
假設(shè)網(wǎng)站使用 Angular 框架構(gòu)建,當(dāng)前使用的框架版本為 1.7.9 版,在沒有壓縮的情況下文件為 172KiB,如果使用 Brotli 壓縮算法則可以將其體積縮小到 53KiB,也就是獲得大約 70% 的壓縮率。
此時開發(fā)者需要將框架版本從 1.7.9 版升級到 1.8.3 版,由于新版本的大小與舊版本類似,因此采用 Brotli 壓縮算法后體積也類似。
但如果使用自定義的共享詞典功能,就可以使用之前版本的資源字典來壓縮新版本的資源,這樣實際輸出的文件大約只有 4KiB,壓縮率高達 98%,這可以大幅度縮小瀏覽器需要下載的文件,從而提高網(wǎng)站的加載速度。
自定義共享字典技術(shù):
Chrome 團隊解釋稱,自定義字典是一個外部文件,可以應(yīng)用于任何輸入,這些字典可以是高度針對單一應(yīng)用的產(chǎn)品代碼或是任何內(nèi)容,而字典對于輸入的適用性則可能對整體壓縮效率產(chǎn)生巨大影響,與輸入內(nèi)容高度相似的字典實際上可以達到更高的壓縮率。
在過去要想解壓文件需要使用想通的字典,這使用一種名為 SDCH 的流程,但存在潛在的安全弱點。Chrome 稱新的共享字典壓縮技術(shù)已經(jīng)解決了這些安全性問題,無論是動態(tài)還是靜態(tài)資源都可以獲得更多好處。
后續(xù) Chrome 會在 Accept-Encoding Header 中聲明受支持的壓縮算法,例如 gzip、br (即 Brotli)、zstd (即 ZStandard) 等,當(dāng)啟用共享詞典后會加上額外聲明,包括 br-d 或者 zstd-d。
開發(fā)者使用此功能:
當(dāng)前測試階段如果開發(fā)者要在生產(chǎn)環(huán)境中使用此功能,需要通過 Chrome 的 Origin Trial 注冊獲取 Token,然后在網(wǎng)站上使用這個 Token 來啟用共享字典壓縮功能。
對于個人用戶,可以在 Chrome 中開啟 Compression Dictionary Transport 實驗性選項,如果訪問的網(wǎng)站已經(jīng)獲取 Token 開啟共享詞典,那就能用了。
via Chrome Developer:https://developer.chrome.com/blog/shared-dictionary-compression?hl=en