欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

WEB前端性能優(yōu)化——Gzip壓縮,壓縮率 65%

admin
2024年11月20日 12:10 本文熱度 463

本文轉(zhuǎn)載于稀土掘金技術(shù)社區(qū),作者:jiayinkong

原文鏈接:https://juejin.cn/post/7426886728060059683

什么是Gzip壓縮

gzip是一種文件壓縮格式,它可以將文件壓縮為較小的大小,以便更快地在網(wǎng)絡(luò)上傳輸或存儲(chǔ)在磁盤上。

gzip壓縮算法適用于文本類型的數(shù)據(jù),通常用于壓縮Web服務(wù)器上的靜態(tài)資源文件,例如HTML,CSS,JavaScript文件和其他文本文件。當(dāng)客戶端請(qǐng)求這些文件時(shí),Web服務(wù)器會(huì)將它們壓縮為gzip格式并將其發(fā)送到客戶端,這可以顯著提高網(wǎng)站的加載速度和性能。

gzip壓縮是一種有損壓縮,這意味著壓縮后的文件可能會(huì)損失一些細(xì)節(jié)和精度,但通常不會(huì)對(duì)文件的實(shí)用性造成太大影響。

優(yōu)點(diǎn)

減少文件大小,gzip壓縮比率在3到10倍左右,可以大大節(jié)省服務(wù)器網(wǎng)絡(luò)帶寬。

  1. 減少存儲(chǔ)空間
  2. 通過(guò)網(wǎng)絡(luò)傳輸文件時(shí),減少傳輸時(shí)間

缺點(diǎn)

  1. 開(kāi)啟gzip后會(huì)額外增加很多cpu開(kāi)銷,無(wú)論是服務(wù)器壓縮還是前端解壓縮都需要消耗cpu。
  2. 對(duì)圖片壓縮支持不太好,會(huì)出現(xiàn)體積變大或圖片失真問(wèn)題。

如何開(kāi)啟 Gzip

兩個(gè)先行條件

  • 服務(wù)器支持并開(kāi)啟gzip壓縮服務(wù)(nginx、IIS、Apache、tomcat服務(wù)器都支持)
  • 客戶端(瀏覽器)支持Gzip解壓服務(wù),目前主流瀏覽器都支持Gzip解壓服務(wù),除了IE(可通過(guò)Nginx配置 disabled)

判斷是否已開(kāi)啟Gzip服務(wù)

  1. 服務(wù)器開(kāi)啟了 Gzip 壓縮,http響應(yīng)頭出現(xiàn):Content-Encoding: gzip
  2. 客戶端支持 Gzip 壓縮,http請(qǐng)求頭出現(xiàn):Accept-Encoding: gzip

服務(wù)器支持 gzip 壓縮的方式

  1. 打包的時(shí)候生成對(duì)應(yīng)的 .gz 文件,瀏覽器請(qǐng)求xxx.js資源時(shí),服務(wù)器返回對(duì)應(yīng)的xxx.js.gz文件。
  2. 瀏覽器請(qǐng)求xx.js時(shí),服務(wù)器對(duì)xx.js進(jìn)行壓縮后傳輸給瀏覽器

webpack 搭配 nginx 配置的作用

減少服務(wù)器壓縮文件的壓力

即:webpack 打包的時(shí)候生成資源對(duì)應(yīng)的 .gz 文件,瀏覽器請(qǐng)求xxx.js(或xxx.css)資源時(shí),服務(wù)器直接返回對(duì)應(yīng)的xxx.js.gz(或xxx.css.gz)文件

webpack 配置

構(gòu)建過(guò)程中為每個(gè)資源文件生成一個(gè) .gz 后綴的壓縮文件,然后可以配置 web 服務(wù)器(nginx),使其優(yōu)先提供這些 gzip 壓縮文件。

  • @vue/cli 5.0.8
  • compression-webpack-plugin 4.0.1?

// vue.config.js

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

const CompressionPlugin = require('compression-webpack-plugin'); // 4.0.1


module.exports = {

  ...

  configureWebpack: {

  new BundleAnalyzerPlugin(),

  plugins: [

    new CompressionPlugin({

      filename: '[path].gz[query]',

      algorithm: 'gzip', //壓縮算法

      test: /.js$|.css$|.html$/,

      threshold: 10240, // //壓縮超過(guò)此大小的文件,以字節(jié)為單位

      minRatio: 0.8,

      deleteOriginalAssets: false, //刪除原始文件只保留壓縮后的文件

    }),

  ],

}

打包
pnpm build:test

打包產(chǎn)物大小對(duì)比

打包后資源大小超過(guò) 10 KB 的會(huì)生成對(duì)應(yīng)的 .gz 文件

bundle 分析

  • 原資源大小,總 2MB
  • Gzip 壓縮后的資源大小,總 713.55 KB,壓縮率 65%

713.55 KB = 0.7 MB

2MB * (1 - x)= 0.7MB

x = 65%

原資源大小

Gzip 壓縮后的大小

nginx配置

確保在 nginx 中配置:gzip_static: on; 指令。

告訴 nginx 在提供文件時(shí)優(yōu)先查找對(duì)應(yīng)的 .gz 版本,如果找到,nginx 會(huì)提供 .gz 文件而不是原始文件,并且還會(huì)自動(dòng)設(shè)置正確的 Content-Encoding 響應(yīng)頭。

當(dāng)瀏覽器支持 gzip 壓縮且請(qǐng)求特定資源時(shí),如果對(duì)應(yīng)的 .gz 文件存在,nginx 就會(huì)直接提供該壓縮文件,從而減少數(shù)據(jù)傳輸量,加快網(wǎng)頁(yè)加載速度。

gzip on; # 開(kāi)啟Gzip壓縮

gzip_disable "msie6"; # IE 對(duì) Gzip 壓縮不友好,禁掉

gzip_buffers 4 16k; # 獲取多少內(nèi)存用于緩存壓縮結(jié)果,4 16k表示以16k*4為單位獲得,默認(rèn) 4 8k

gzip_comp_level 6; # 壓縮比{1 - 9},1處理壓縮速度最快,9最慢(傳輸快但消耗CPU)

gzip_static: on; # 告訴 nginx 在提供文件時(shí)優(yōu)先查找對(duì)應(yīng)的 .gz 版本

gzip_http_version 1.1; # 識(shí)別http協(xié)議的版本,早期瀏覽器可能不支持gzip自解壓,用戶會(huì)看到亂碼,默認(rèn)1.1

gzip_min_length 10k; // 超過(guò) 10Kb才壓縮

gzip_types text/plain text/plain application/javascript application/x-javascript text/css application/xml text/javascript

Lighthouse 性能優(yōu)化分析

指標(biāo)名稱Google 性能指標(biāo)得分區(qū)間優(yōu)化前優(yōu)化后
Lighthouse Performance 評(píng)分(單位:分)90 -100 優(yōu)50 -89 良好0 - 49 差65分82分
FCP(First Contentful Paint 首次內(nèi)容繪制,單位:s)0 - 1.8 快速1.8 - 3 中等3 以上 慢1.7s0.9s
LCP(Largest Contentful Paint 最大內(nèi)容繪制,單位:s)0 - 2.5 快速2.5 - 4 中等4 以上 慢4.1s2.3s
Speed Index(速度指數(shù))0 - 3.4 快速3.4 - 5.8 中等5.8 以上 慢2.4s1.4s
TBT(Total Blocking Time 總阻塞時(shí)間,單位:ms)0 - 200 快速200-600 中等600 以上 慢60ms100ms


該文章在 2024/11/20 16:41:06 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved