精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端體驗優(yōu)化之漸進(jìn)式圖片

開發(fā) 前端
關(guān)于前端的性能及體驗問題,圖片的加載絕對是重中之重,尤其是在一些有著許多大圖的頁面,在網(wǎng)絡(luò)不穩(wěn)定或稍慢的時候,我們經(jīng)常能夠看到頁面中圖片的位置是一片空白,等圖片加載完成才開始慢慢渲染,在這段時間對用戶的體驗其實是非常不友好的。

前言

關(guān)于前端的性能及體驗問題,圖片的加載絕對是重中之重,尤其是在一些有著許多大圖的頁面,在網(wǎng)絡(luò)不穩(wěn)定或稍慢的時候,我們經(jīng)常能夠看到頁面中圖片的位置是一片空白,等圖片加載完成才開始慢慢渲染,在這段時間對用戶的體驗其實是非常不友好的。

那么我們應(yīng)該如何來進(jìn)行優(yōu)化呢?

大家想說的是不是:把圖片壓縮一下不就好了?是的,圖片壓縮是我們前端開發(fā)過程必備的一步,但是光靠圖片壓縮并不能解決所有的圖片體驗問題,有些圖片本身就比較大,內(nèi)容質(zhì)量都比較高,此時壓縮圖片帶來的加載性能提升似乎就沒有那么明顯了,這時候我們就可能需要使用一些技巧來進(jìn)行優(yōu)化了。

background-image

之前在需求中有使用過background-image來進(jìn)行優(yōu)化,先來看看效果:

優(yōu)化前:

優(yōu)化后:

從上述對比中可以清晰看出,優(yōu)化后的圖片加載體驗相較于優(yōu)化前實現(xiàn)了顯著提升。優(yōu)化后,用戶所經(jīng)歷的白屏?xí)r間顯著縮短,取而代之的是圖片從模糊逐漸變得清晰的過程。這意味著用戶能夠更早地預(yù)覽到圖片的內(nèi)容,而無需再焦急地等待白屏消失,從而大大提升了用戶的體驗感受!

原理

原理實際上很簡單,從上圖我們可以看到優(yōu)化后的效果實際上是加載了兩張圖片,一張小圖(1.9k),一張原圖(2.8M),所有最開始看到的模糊圖片其實是這張小圖,最后變清晰看到的是原圖。

這里使用的技術(shù)也很簡單,只需要CSS的background-image

?

background-image 屬性用于為一個元素設(shè)置一個或者多個背景圖像。

.pic_container {
    width: 300px;
    height: 375px;
    background-image: url("../assets/origin.jpg"), url("../assets/small.jpg");
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

在繪制時,圖像以 z 方向堆疊的方式進(jìn)行。先指定的圖像會在之后指定的圖像上面繪制。因此指定的第一個圖像“最接近用戶”。

也就是說,原圖與縮略圖是疊在一起的,并且原圖在上縮略圖在下,在原圖還沒加載完成時,可以先看到下面的縮略圖,也就是那張模糊的圖片,等原圖加載完成之后,瀏覽器才會開始渲染原圖,由于兩張圖是在同一個位置,所以我們可以看到一個從模糊變清晰的過程。

img + background-image

雖然background-image天生就支持設(shè)置多個背景圖,但更多時候我們還是使用img來承載圖片,但是img的src屬性可沒有這一特點。是的,如果不使用JS的話光靠img也是做不到上面的效果的。

如果想要使用img的話,可以使用img + background-image組合來實現(xiàn)。

<div class="pic_container">
  <img src="../assets/origin.jpg" alt="origin" />
</div>

<style lang="scss" scoped>
.pic_container {
    background-image: url("../assets/small.jpg");
    background-repeat: no-repeat;
    background-size: 100% 100%;
    img {
        width: 300px;
        height: 375px;
    }
}
</style>

效果跟上面那種類似,實際上原理也差不多。

需要注意的是:img元素占位在圖片還沒開始渲染時,它在頁面上實際上是透明的,所以我們能夠在看到下面的背景圖片,等img資源加載完成開始渲染時,才會慢慢遮蓋下面的背景圖。

為了更方便的復(fù)用,我們可以把它封裝成一個通用組件用來提升用戶體驗,但該組件需要提供兩張圖片,一張原圖,一張縮略圖。

這樣做有的同學(xué)可能覺得很麻煩,那么有沒有更簡便的方法呢?

漸進(jìn)式圖片

除了以上這兩種方案,我還見過另外一種方案實現(xiàn)的效果,但它并不依賴于background-image,只需要img元素就可以,比如:

這種效果應(yīng)該圖片格式的功勞,通常網(wǎng)站使用的 JPEG 的內(nèi)容顯示通常有兩種類型:

  • 基線 JPEG
  • 漸進(jìn)式 JPEG

一般來說我們見的比較多的應(yīng)該是基線JPEG

基線JPEG(Baseline JPEG)

基線 JPEG 最常見的應(yīng)用之一是在 Web 瀏覽器中呈現(xiàn)的圖像?;€ JPEG 算法在從網(wǎng)絡(luò)下載處理數(shù)據(jù)時逐行渲染圖像。當(dāng)數(shù)據(jù)從網(wǎng)絡(luò)到達(dá)計算機(jī)的緩沖區(qū)時,數(shù)據(jù)以流的形式進(jìn)行處理?;€式的編碼方式是圖片從上到下,從左到右地進(jìn)行處理和編碼。這就會形成我們查看大圖時比較常見的從上至下逐行顯示,即首先顯示圖像的頂部。然后它會逐行加載到底部,直到顯示出完整的圖像。

這種格式的圖片在面對越大的圖片時,往往需要我們等待越長的時間才能看到完整圖片,比較容易讓網(wǎng)站流失用戶

漸進(jìn)式 JPEG(Progressive JPEG)

漸進(jìn)式 JPEG 以特定方式壓縮照片和圖形,與基線 JPEG 不同,PJPEG 在 Web 瀏覽器中呈現(xiàn)時,會首先給出模糊圖像的外觀。然后一點一點地開始圖片渲染,直到它顯示完全渲染的圖像。瀏覽器實際上是逐行解釋圖像,但在占位符中提供了完整圖像的模糊預(yù)覽。隨著 Web 瀏覽器的渲染引擎處理數(shù)據(jù),圖像的對比度開始變得更清晰、更詳細(xì)。直到最后渲染完畢,用戶將看到完整的清晰圖像。

如何生成漸進(jìn)式圖片

通常情況下,設(shè)計師給我們提供的切圖素材通常就是普通格式的圖片,并不支持漸進(jìn)式加載,但實際上他們在導(dǎo)出圖片的時候可以選擇導(dǎo)出為漸進(jìn)式圖片圖片的,但他們可能并不會幫你這樣干。

那么我們自己能不能將非漸進(jìn)式圖片轉(zhuǎn)換為漸進(jìn)式圖片呢,答案是可以的!

GraphicsMagick

我們可以使用該工具庫來生成漸進(jìn)式圖片,我們只需要安裝node對應(yīng)的版本

npm install gm
const gm = require('gm').subClass({ imageMagick: true });
const path = require('path');

function transformImage(imagePath, transform, generatePath, callback) {
  gm(imagePath)
    .interlace('Line') // 生成漸進(jìn)式圖片
    .resize(transform.width, transform.height)
    .write(generatePath, callback);
}

const basePath = path.join(__dirname, '../src/assets/');

transformImage(
    path.join(basePath, 'sy.pic.jpg'), 
    { width: 500, height: 500 }, 
    path.join(basePath, 'sy.line.jpeg'), 
    (res) => {
        console.log(res);
    }
);

如何選擇

首先明確的一點,漸進(jìn)式圖片的加載體驗的確是要比普通圖片的加載要好上不少,無論是我們自己模擬的漸進(jìn)式加載還是通過依賴圖片本身算法來實現(xiàn)的,這幾種方案在各大網(wǎng)站都能看到在應(yīng)用。

漸進(jìn)式圖片的優(yōu)缺點

優(yōu)點

  1. 移動網(wǎng)絡(luò)流量優(yōu)化:漸進(jìn)式圖片下載技術(shù)允許用戶僅初始下載圖片的一部分,有效降低圖像分辨率并減少數(shù)據(jù)使用量,特別適用于移動網(wǎng)絡(luò)環(huán)境。
  2. 減少加載等待時間:漸進(jìn)式圖片能夠讓用戶先快速預(yù)覽圖片的輪廓,隨后逐步加載更多圖片細(xì)節(jié),提升用戶體驗。

缺點

  1. 圖片格式轉(zhuǎn)換成本:由于大多數(shù)現(xiàn)有圖片采用普通壓縮格式,轉(zhuǎn)換為漸進(jìn)式格式需要額外的處理成本。
  2. 兼容性:部分老舊瀏覽器(例如IE8)對漸進(jìn)式圖片格式的支持不足,盡管隨著時間推移,這些瀏覽器將逐漸被市場淘汰,但當(dāng)前仍可能影響部分用戶的瀏覽體驗。
責(zé)任編輯:華軒 來源: 前端南玖
相關(guān)推薦

2014-12-16 13:51:55

華為eSpace UC統(tǒng)一通信

2025-09-28 01:50:00

2023-04-11 07:59:56

Kruise漸進(jìn)式交付

2022-08-22 10:40:40

Kubernete部署分析運行

2010-04-27 13:41:42

云計算

2021-07-16 06:40:19

Argo RollouAnalysis云原生

2023-09-28 07:34:33

2021-12-21 11:01:30

自動駕駛數(shù)據(jù)人工智能

2016-01-05 16:07:17

2021-02-02 10:22:48

Web應(yīng)用程序架構(gòu)

2024-11-20 09:39:56

漸進(jìn)式遷移云策略云支出

2021-01-13 13:49:29

漸進(jìn)式網(wǎng)頁應(yīng)用應(yīng)用程序開發(fā)

2021-06-22 10:07:20

漸進(jìn)式創(chuàng)新顛覆性創(chuàng)新二元方法

2021-07-22 09:00:00

SPAPWAWeb

2013-09-23 10:00:33

5G4G5G研究

2022-05-09 17:33:23

PWA漸進(jìn)式Web應(yīng)用程序離線優(yōu)先

2021-06-24 08:25:38

flux2GitOps 云原生

2011-05-19 09:21:37

互聯(lián)網(wǎng)信息化

2025-07-09 07:57:36

點贊
收藏

51CTO技術(shù)棧公眾號

在线观看的黄色| a片在线免费观看| 国产精品一区二区三区四区在线观看| 亚洲手机成人高清视频| 成人免费视频网站入口| 亚洲国产精品午夜在线观看| 免费不卡中文字幕在线| 欧美日韩国产在线观看| 国产日本欧美在线| 欧美一区二区在线观看视频| 亚洲免费中文| 久久精品99久久久香蕉| 亚洲女人在线观看| 天堂电影一区| 亚洲人成7777| 日本不卡高清视频一区| 国产免费不卡av| 性久久久久久| 欧美成人精品一区| 亚洲女优在线观看| 亚洲精品a区| 欧美性猛交xxxx黑人交| 日韩av中文字幕第一页| aⅴ在线视频男人的天堂| 国产盗摄女厕一区二区三区 | 日本不卡二区高清三区| 亚洲黄色小说网| 蜜臀国产一区二区三区在线播放 | 亚洲av无码一区二区三区在线| 久久视频在线观看| 日韩一区二区三区av| 国产第一页视频| 98色花堂精品视频在线观看| 国产精品另类一区| 欧美日韩另类综合| 日本黄色三级视频| 国产在线国偷精品免费看| 奇米成人av国产一区二区三区| 黑人巨大精品一区二区在线| 日韩欧美网站| 亚洲欧美另类中文字幕| 久久精品aⅴ无码中文字字幕重口| 黄色精品视频| 色94色欧美sute亚洲13| 国产精品裸体瑜伽视频| 久久久久黄久久免费漫画| 中文字幕综合网| 亚洲欧洲国产日韩精品| 欧美xxx.com| 99re免费视频精品全部| 国产高清在线一区| 国产按摩一区二区三区| 国产伦理精品不卡| 成人黄色免费在线观看| 中文字幕一二区| 首页国产欧美久久| 国产成人精品日本亚洲| 伊人中文字幕在线观看| 久久九九国产| 国产a级全部精品| 99久久久久久久久| 玖玖在线精品| 国产精品久久久久免费a∨| 黄色在线视频网址| 日韩激情av在线| 国产精品激情自拍| 怡春院在线视频| 精品一区二区在线播放| 国产精品草莓在线免费观看| 五月激情丁香网| 六月丁香婷婷色狠狠久久| 国产精品尤物福利片在线观看| 中文字幕日日夜夜| 国产一区在线精品| 国产精品久久亚洲| 天天综合永久入口| 久久精品视频一区| 亚洲一区二区精品在线观看| 国产成人高清精品| 亚洲国产精品精华液网站| 欧美人成在线观看| 亚洲天堂免费电影| 欧美日韩在线三区| 妖精视频在线观看| 亚洲黄色录像| 日韩在线视频中文字幕| 久久精品欧美一区二区| 亚洲一区久久| 国产日韩精品电影| 成人午夜免费福利| 久久久亚洲精品一区二区三区| 翔田千里亚洲一二三区| 在线不卡日本v二区707| 欧美色播在线播放| 一区二区在线播放视频| 日韩免费一级| 亚洲夜晚福利在线观看| 日本精品人妻无码77777| 亚洲激情欧美| 国产精品免费久久久久久| 精品国产乱码一区二区三| 97精品视频在线观看自产线路二| 欧洲视频一区二区三区| 污视频免费在线观看| 欧美视频中文在线看| 特黄视频免费观看| 久久365资源| 日韩亚洲国产中文字幕| 日韩三级视频在线播放| 久久99久久精品| 久久久久网址| 91麻豆国产福利在线观看宅福利| 日韩欧美一区视频| 苍井空张开腿实干12次| 欧美成免费一区二区视频| 国内精品久久久久久| 97久久人国产精品婷婷| 91麻豆精品在线观看| 国产免费一区二区三区四在线播放| 在线天堂资源| 精品国产乱码久久久久久夜甘婷婷 | 一区二区三区四区免费视频| 黄视频免费在线看| 日韩一级免费观看| 中文字幕av久久爽一区| 99精品视频免费观看| 18成人在线| 国产精品一级伦理| 天天色综合天天| 97人人模人人爽人人澡| 日本一区二区在线看| 青青草一区二区| 少妇精品视频一区二区 | 国产无码精品在线播放| 激情久久五月天| 亚洲欧洲一区二区| se01亚洲视频| 日韩激情av在线免费观看| 免费在线看黄网址| 国产精品资源在线观看| 亚洲一区二区免费视频软件合集| 欧美一级二级视频| 亚洲美女视频网站| 国产成人无码精品亚洲| 成人黄页毛片网站| 福利视频免费在线观看| 亚洲**毛片| 色综合视频网站| 国产高潮在线观看| 亚洲欧美另类小说| www.偷拍.com| 国一区二区在线观看| 99国精产品一二二线| 麻豆福利在线观看| 欧美成人a在线| 国产中文字幕免费| 99麻豆久久久国产精品免费优播| 成人免费视频91| 老汉色老汉首页av亚洲| 91高清免费在线观看| 日本大臀精品| 欧美又粗又大又爽| 国产小视频你懂的| 国产精品一区二区免费不卡| 肉大捧一出免费观看网站在线播放 | 日本55丰满熟妇厨房伦| 欧美精品激情| 国产午夜精品在线| 成人性生活视频| 一本大道久久加勒比香蕉 | 欧美日韩精品久久久| 娇小11一12╳yⅹ╳毛片| 国产一区二区美女诱惑| 国产精品久久久影院| 8848成人影院| 欧美亚洲一级片| 国产一区电影| 制服丝袜亚洲色图| 久久精品视频6| 久久精品男人的天堂| 成年人三级黄色片| 亚洲成人在线| 日韩精品伦理第一区| 99精品美女视频在线观看热舞| 欧美激情啊啊啊| 能在线看的av| 777xxx欧美| 圆产精品久久久久久久久久久| 久久久亚洲午夜电影| 一级片免费在线观看视频| 亚洲裸体俱乐部裸体舞表演av| 欧美高清一区二区| 9999精品视频| 清纯唯美亚洲激情| 理论片午午伦夜理片在线播放| 亚洲精品在线网站| 国产一区二区视频免费| 亚洲欧美视频在线观看| 91精品人妻一区二区三区蜜桃欧美| 久久精品噜噜噜成人av农村| 成人免费毛片在线观看| 日韩一区欧美| 九九九九九精品| av在线成人| 奇米成人av国产一区二区三区| 2024短剧网剧在线观看| 亚洲午夜色婷婷在线| www男人的天堂| 欧美色国产精品| 91午夜视频在线观看| 亚洲欧美日韩精品久久久久| 少妇久久久久久久久久| 成人一区在线看| 婷婷激情5月天| 久久一二三四| 69sex久久精品国产麻豆| 99国产精品免费视频观看| 免费在线观看91| 综合伊人久久| 91久久精品国产91久久| 四虎影视4hu4虎成人| 欧美激情一级精品国产| 日本电影在线观看网站| 亚洲系列中文字幕| 黄色av网址在线| 3751色影院一区二区三区| 波多野结衣在线电影| 天天色综合成人网| 国产奶水涨喷在线播放| 亚洲精品成人精品456| 97精品在线播放| 国产女同性恋一区二区| 精品国产无码在线观看| 91蜜桃在线观看| 中文字幕在线播放视频| 大白屁股一区二区视频| 色婷婷狠狠18禁久久| 国产一区二区三区免费| 奇米视频7777| 免费久久精品视频| 韩国中文字幕av| 久久久久国产精品一区三寸| 黄色动漫在线免费看| 在线播放一区| 欧美一级视频免费看| 激情视频一区二区三区| 免费不卡av在线| 伊人久久大香线蕉综合热线| 丰满少妇大力进入| 91久久黄色| 欧美丰满熟妇bbbbbb百度| 一本色道久久综合亚洲精品高清 | 神马午夜伦理不卡| 欧美国产日本高清在线 | 精品国产aⅴ| 欧美日韩一区在线播放| 加勒比久久综合| 日韩性感在线| 热久久天天拍国产| av不卡在线免费观看| 91精品国产91久久久久久密臀| 综合一区中文字幕| 亚洲欧洲中文字幕| 国产91在线亚洲| 亚洲精品合集| 韩国日本不卡在线| 丁香高清在线观看完整电影视频 | √天堂资源地址在线官网| 国产午夜精品全部视频在线播放 | 97超碰中文字幕| 91精品国产黑色紧身裤美女| www.香蕉视频| 亚洲精品wwwww| 国产福利小视频在线| 日韩中文字幕久久| 羞羞污视频在线观看| 午夜精品久久久久久久久久久久| 自拍在线观看| 国产啪精品视频网站| 一区二区日韩| 免费看国产精品一二区视频| 91蜜臀精品国产自偷在线| 国产激情片在线观看| 亚洲少妇一区| 色免费在线视频| 丁香另类激情小说| 日本一级免费视频| 亚洲精品日日夜夜| 日本韩国欧美中文字幕| 欧美日韩一区不卡| 亚洲乱码在线观看| 亚洲欧美自拍一区| 久久精品视频免费看| 97色在线观看| 日本一区二区三区中文字幕| 国产精品一区视频| 欧美性感美女一区二区| 日韩精品综合在线| 日本欧美在线看| 大桥未久恸哭の女教师| 中文字幕av在线一区二区三区| 欧美日韩在线国产| 在线视频综合导航| 狠狠躁夜夜躁av无码中文幕| 在线午夜精品自拍| 激情国产在线| 亚洲综合社区网| 国产在线日韩精品| 日本精品久久久久久久久久| 日本伊人精品一区二区三区观看方式| 香蕉久久久久久av成人| 中文字幕不卡一区| 日本韩国欧美中文字幕| 日韩精品一区二区三区在线播放 | 久久亚洲精品国产亚洲老地址| 两个人看的在线视频www| 91香蕉国产在线观看| 精品国产乱码久久久| 国产精品国产对白熟妇| 极品少妇一区二区| 91激情视频在线观看| 午夜精品福利一区二区三区av| 国产熟女精品视频| 中文字幕av日韩| 国产免费不卡| 国产区欧美区日韩区| 欧美另类专区| 天天久久综合网| 国产精品久久久久久久午夜片| 国产精品21p| 亚洲第一色在线| 欧美xxxx做受欧美88bbw| 91九色国产社区在线观看| 青青草综合网| av免费播放网址| av在线免费不卡| 国产第一页第二页| 日韩亚洲欧美在线| 成人在线播放免费观看| 国产深夜精品福利| 日韩精品二区| jizz欧美性11| 国产精品免费av| 毛片在线免费播放| 一区二区亚洲欧洲国产日韩| 26uuu亚洲电影| 欧美日韩精品免费看| 性欧美videos另类喷潮| 深爱五月激情网| 欧美体内谢she精2性欧美| 欧洲毛片在线| 国产a∨精品一区二区三区不卡| 国产成人三级| 丁香婷婷激情网| 国产精品三级电影| 夜夜嗨aⅴ一区二区三区| 精品久久久av| 精品国产亚洲一区二区在线观看 | 国产日本精品| 久久丫精品国产亚洲av不卡| 欧美日韩加勒比精品一区| 亚洲 精品 综合 精品 自拍| 欧美亚洲国产视频| 亚洲自拍电影| 亚洲一区日韩精品| 亚洲欧美视频在线观看视频| 成人午夜免费在线观看| 欧美一级黑人aaaaaaa做受| 国产成人精品999在线观看| 美女少妇一区二区| 亚洲欧美一区二区三区孕妇| 亚洲卡一卡二卡三| 日本国产欧美一区二区三区| 久久理论电影| 色欲欲www成人网站| 欧美日韩免费区域视频在线观看| 精品无人乱码| 成人在线中文字幕| 韩日成人在线| 少妇真人直播免费视频| 欧美另类高清zo欧美| 黄色小说在线播放| 欧美不卡福利| 精品一区二区三区在线观看国产 | 亚洲a区在线视频| 亚洲理伦在线| 人妻互换一区二区激情偷拍| 日韩欧美在线1卡| 伊人久久视频| 中文字幕一区二区三区精彩视频| 成人动漫一区二区| 日韩精品在线一区二区三区| 大胆人体色综合| 最新亚洲精品| 毛片毛片毛片毛片毛| 色天天综合色天天久久| 国产成人l区| 日韩欧美手机在线| 懂色av一区二区夜夜嗨| 最近中文在线观看|