目錄
Brotli的創世紀
最初的失望
一個自製的解決方案
漸進的投資回報率
進一步的增強
自己嘗試!
未來的前景
結論
首頁 web前端 css教學 我如何使用brotli以CDN量表獲取更小的CSS和JavaScript文件

我如何使用brotli以CDN量表獲取更小的CSS和JavaScript文件

Apr 05, 2025 am 10:26 AM

我如何使用brotli以CDN量表獲取更小的CSS和JavaScript文件

HBO系列矽谷幽默地描繪了Pied Piper,這是一個旨在創建革命性壓縮算法的開發團隊。他們的目標?為了過時對高質量流和文件存儲的關注。代表Google的虛構的Hooli試圖獲取其技術。有趣的是,Google實際上擁有強大的壓縮引擎:Brotli。

本文詳細介紹了我在生產環境中使用Brotli使用Brotli的經驗。雖然最初被認為是計算昂貴的,尤其是在較高的壓縮水平下,Brotli在幾個關鍵領域都被證明具有非常成本效益,超過了GZIP和較低的Brotli設置。

Brotli的創世紀

Google於2015年宣布了Brotli,並在Github上發布了其源代碼。 Brotli創作者還在兩年前開發了Google的Zopfli壓縮。與現有技術建立的Zopfli不同,Brotli是從頭開始設計的,優先考慮靜態Web資產的文本壓縮(HTML,CSS,JavaScript,Web Fonts)。

作為當時的自由網絡績效顧問,Brotli承諾比Zopfli的20-26%改善(本身是高效的放氣壓縮機)感到興奮。這代表了對Zlib(本質上是GZIP)的顯著進步。

最初的失望

儘管Brotli在工具,服務和瀏覽器中獲得了快速的吸引力,但預期的26%的壓縮並未在生產中始終實現。一些CDN在內部使用較低的壓縮水平,而另一些CDN則需要手動起源側brotli配置。

服務器端Brotli支持很好,但是實現高壓的高壓定制預壓縮代碼或服務器模塊 - 通常不可用,尤其是在共享託管的情況下。這很令人沮喪;我的目的是為客戶網站提供最大的字節壓縮,但是事實證明,按需預壓以及同時的文件更新是具有挑戰性的。

一個自製的解決方案

我為客戶開發了性能優化服務,將優化分為“內容”,“交付”和“緩存”組。 Brotli被整合到“內容”優化中。

Brotli提供可調節的壓縮水平(最高11級)。 11級提供了大量的文件尺寸減少,但非常慢,不適合由於CPU高開銷而導致按需壓縮。我的基準顯示Brotli:11佔數百毫秒來壓縮一個縮小的jQuery文件。預壓是唯一需要服務器級緩存的可行選擇。

儘管擔心資源消耗,但我還是將Brotli:11作為可配置的服務器選項,使客戶可以權衡計算成本。

漸進的投資回報率

我的服務包含地理內容交付(內置CDN)。我將公共和私人CDN組合在單個主機上,利用共享的瀏覽器庫來獲取公共資源,同時避免了額外的DNS查找和連接成本。此優化的HTTP/2多路復用。

使用Brotli:為所有可壓縮資產(CSS,JavaScript,SVG,TTF等)啟用了11個預壓縮,請提高初始請求開銷,但隨後的請求順利運行。 Brotli的高瀏覽器支持確保了廣泛的利用。

分析顯示,與其他CDN相比,節省了約21%(有些已經在較低級別使用Brotli)。這在經過測試的網站之間是一致的。下圖說明了節省(CSS節省比JavaScript更重要)。

Brotli:11的好處是很大的:

  • 減少了TLS開銷:雖然不容易量化,但較小的文件加密速度更快。
  • 較低的帶寬成本:一致的21%節省量導致累積成本降低。
  • 有效的邊緣服務器緩存:較小的Brotli壓縮文件最大化的內存利用率。
  • 改進的用戶體驗:減少了用戶,尤其是移動用戶的數據傳輸,從而可以更好地節省電池壽命和數據。

每次要求節省的成本是適度的,但是公共資源的接近零高速緩存率很快攤銷了初始壓縮成本。長期利益很大。

進一步的增強

我們的服務允許客戶使用較低的壓縮液位來用於經常更改私有CDN資源(自定義CSS/JavaScript),自動切換到公共CDN,以較少更新,預壓縮(Brotli:11)資源。這將高壓比與快速清除/更新之間進行平衡。

我們的集成工具簡化了此過程。公共CDN提供免費的帶寬和出色的性能。

自己嘗試!

積極的壓縮可以顯著減少頁面負載大小。我們的PageCDN服務可訪問免費的公共CDN。以下是常用庫的示例:

<link crossorigin="anonymous" href="https://pagecdn.io/lib/font-awesome/5.13.0/css/all.min.css" integrity="sha256-h20CPZ0QyXlBuAw7A KluUYx/3pK c7lYEpqLTlxjYQ=" rel="stylesheet">
<link crossorigin="anonymous" href="https://pagecdn.io/lib/ionicons/4.6.3/css/ionicons.min.css" integrity="sha256-UUDuVsOnvDZHzqNIznkKeDGtWZ/Bw9ZlW 26xqKLV7c=" rel="stylesheet">
<link crossorigin="anonymous" href="https://pagecdn.io/lib/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha256-L/W5Wfqfa0sdBNIKN9cG6QA5F2qx4qICmU2VgLruv9Y=" rel="stylesheet">
登入後複製

我們的PHP庫和WordPress插件與公共CDN無縫集成。 JavaScript,Python和Ruby圖書館即將到來。您還可以使用我們的搜索工具來找到用於您的網站資源的CDN等效物。

未來的前景

我們最初專注於流行的庫來減輕惡意軟件風險。我們根據用戶建議不斷添加新庫。對於尚未在我們的公共CDN上的資源,我們的私人CDN允許鏈接到存儲庫並應用自定義優化。

結論

本文反映了我對Brotli的個人經歷。儘管我們的服務仍然相對較小,但積極的壓縮已被證明是非常有益的。免費的公共CDN提供了與您的網站相似的優勢。歡迎反饋。

以上是我如何使用brotli以CDN量表獲取更小的CSS和JavaScript文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1659
14
CakePHP 教程
1416
52
Laravel 教程
1310
25
PHP教程
1258
29
C# 教程
1232
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

如何在WordPress主題中構建VUE組件 如何在WordPress主題中構建VUE組件 Apr 11, 2025 am 11:03 AM

內聯式模板指令使我們能夠將豐富的VUE組件構建為對現有WordPress標記的逐步增強。

php是A-OK用於模板 php是A-OK用於模板 Apr 11, 2025 am 11:04 AM

PHP模板通常會因促進Subpar代碼而變得不良說唱,但這並不是這樣的情況。讓我們看一下PHP項目如何執行基本的

編程SASS創建可訪問的顏色組合 編程SASS創建可訪問的顏色組合 Apr 09, 2025 am 11:30 AM

我們一直在尋求使網絡更容易訪問。顏色對比只是數學,因此Sass可以幫助涵蓋設計師可能錯過的邊緣案例。

See all articles