在我們的網(wǎng)站中,一張普通圖片消耗的資源要遠(yuǎn)遠(yuǎn)大于一千個(gè)文字的大小,根據(jù)HTTP Archive 的研 究數(shù)據(jù),圖片約占整個(gè)網(wǎng)頁(yè)權(quán)重的 24%,如果圖片沒(méi)有優(yōu)化處理,這會(huì)極大地影響頁(yè)面加載速度。 有研究表明,如果頁(yè)面在 3 秒內(nèi)未加載,高達(dá) 40% 的用戶(hù)將放棄該網(wǎng)站。通過(guò)分析一些網(wǎng)站得出:大多數(shù)HTTP 請(qǐng)求都是針對(duì)圖片的,并且是下載量最大的圖片資源,這對(duì)網(wǎng)站的加載速度是一個(gè)極大的挑戰(zhàn)。
選擇合適的圖片格式可以顯著減小圖片文件的大小。常見(jiàn)的圖片格式包括 JPEG、PNG 和 GIF。一般而言:
JPEG 用于照片或具有豐富色彩的圖片。
PNG 用于圖片需要透明背景的情況,以及對(duì)圖片細(xì)節(jié)和質(zhì)量要求較高的情況。
GIF 用于簡(jiǎn)單的動(dòng)畫(huà)或需要透明背景的小圖標(biāo)。
如下,不同格式圖片對(duì)比:
td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt;font-style:normal;font-weight:normal;vertical-align:middle;word-break:normal;word-wrap:normal;}
圖片格式 | 優(yōu)點(diǎn) | 缺點(diǎn) | 適用場(chǎng)景 |
GIF | 文件小,支持動(dòng)畫(huà)、透明,無(wú)兼容性問(wèn)題 | 只支持256種顏色 | 色彩簡(jiǎn)單的logo、icon、動(dòng)圖 |
JPG | 色彩豐富,文件小 | 有損壓縮,反復(fù)保存圖片質(zhì)量下降明顯 | 色彩豐富的圖片/漸變圖片 |
PNG | 無(wú)損壓縮,支持透明,簡(jiǎn)單圖片尺寸小 | 不支持動(dòng)畫(huà),色彩豐富的圖片尺寸大 | logo/icon/透明圖 |
WEBP | 文件小,支持有損和無(wú)損壓縮,支持動(dòng)畫(huà)、透明 | 瀏覽器兼容性不好 | 支持webp格式的app和webview |
SVG | 不失真可縮放性、文本可編輯、文件占比小、無(wú)損壓縮 | 復(fù)雜圖片存在性能問(wèn)題、瀏覽器兼容性不好 | 小型圖標(biāo)、簡(jiǎn)單的圖形和圖表、動(dòng)畫(huà)效果圖 |
確保你的圖片尺寸與其在網(wǎng)頁(yè)上顯示的實(shí)際尺寸相匹配。
切記不要使用大尺寸的圖片,然后通過(guò) CSS 縮小它們,這會(huì)增加頁(yè)面加載時(shí)間。
使用適當(dāng)?shù)膱D片編輯工具(如 Photoshop、GIMP 或在線工具)來(lái)調(diào)整圖片的實(shí)際尺寸。
使用圖片壓縮工具來(lái)減小圖片文件的大小,而不犧牲太多質(zhì)量。一些常用的圖片壓縮工具包括:TinyPNG
JPEG-Optimizer
ImageOptim
確保服務(wù)器設(shè)置了適當(dāng)?shù)木彺骖^,以便瀏覽器可以緩存圖片文件。這樣,當(dāng)用戶(hù)再次訪問(wèn)頁(yè)面時(shí),瀏覽器可以從本地緩存加載圖片,而不必重新下載。
對(duì)于較長(zhǎng)的頁(yè)面,可以使用圖片懶加載技術(shù),僅在圖片進(jìn)入用戶(hù)的視口時(shí)加載它們。這可以減小初始頁(yè)面加載時(shí)間。
.icon {
width: 32px;
height: 32px;
display: inline-block;
background-image: url('sprites.png'); /* 合并后的圖片文件 */
}
.icon1 {
background-position: 0 0; /* 圖標(biāo)1在合并圖片中的位置 */
}
.icon2 {
background-position: -40px 0; /* 圖標(biāo)2在合并圖片中的位置 */
}
<picture>
<source media="(max-width: 320px)" srcset="image-320w.jpg">
<source media="(max-width: 480px)" srcset="image-480w.jpg">
<source srcset="image-800w.jpg">
<img src="image-default.jpg" alt="Responsive Image">
</picture>
對(duì)于不是立即需要加載的圖片,可以使用延遲加載或異步加載的技術(shù)。這對(duì)于一些非關(guān)鍵性的圖片(如底部的圖片)可能會(huì)有幫助。
近年來(lái),性能優(yōu)化方面將會(huì)有很多技術(shù)突破,例如:HTTP/2,新的圖片格式,例如:webp、AVIF等;還可以使用 javascript 腳本工具優(yōu)化,例如:懶加載、延遲加載,只允許首先加載首屏上的圖片,用戶(hù)交互以后再繼續(xù)加載; 對(duì)于包含許多圖片的頁(yè)面,延遲加載可以極大的縮短頁(yè)面加載時(shí)間;我們可以為不同設(shè)備添加不同尺寸大小的圖片,而不是為不同設(shè)備提供一種標(biāo)準(zhǔn)尺寸。圖片優(yōu)化只是網(wǎng)絡(luò)性能的冰山一角,但它是一個(gè)重要的起點(diǎn)。
(來(lái)源:Kenyth)
以上內(nèi)容屬作者個(gè)人觀點(diǎn),不代表雨果跨境立場(chǎng)!本文經(jīng)原作者授權(quán)轉(zhuǎn)載,轉(zhuǎn)載需經(jīng)原作者授權(quán)同意。?