婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談Web前端針對圖片顯示的優(yōu)化方案

淺談Web前端針對圖片顯示的優(yōu)化方案

熱門標(biāo)簽:canvas世界地圖標(biāo)注點線 地圖標(biāo)注難民 地圖標(biāo)注新地點 開地圖標(biāo)注公司掙錢嘛 寧夏手機自動外呼系統(tǒng)好用嗎 沈陽電話電銷機器人官網(wǎng) 蘭州銷售外呼系統(tǒng)加盟 合肥機器人外呼系統(tǒng) 電銷機器人用戶反饋

我在Medium瀏覽帖子的時候發(fā)現(xiàn)他們的圖片加載效果真的很贊誒。首先載入一個低像素的模糊圖片,然后逐漸轉(zhuǎn)變?yōu)楦咔宕髨D。這個過程體驗真的很好,所以我希望能夠明白他們是使用什么方法做到的。

Medium的技術(shù)

我使用WebPageTest測試這個頁面的載入過程。如果你希望能夠測試同樣效果,可以打開Medium的頁面,禁用cache減慢圖片申請加載的過程,所以加載出原圖的時間會稍久。這樣就可以清楚看到整個圖片的加載效果。

具體執(zhí)行過程

使用div限定好圖片展示的區(qū)域,Medium使用div>標(biāo)簽并加入padding-bottom樣式設(shè)定對應(yīng)圖片的展示尺寸。通過這樣占位的方式可以防止在圖片加載后出現(xiàn)整體頁面回流的情況。這種方法通常被稱為intrinsic placeholders

加載小尺寸(像素低)的圖片,此時網(wǎng)頁會先請求一個像素質(zhì)量較低的小號縮略圖(大小為原圖的20%).這個小圖片使用img />標(biāo)簽,因此瀏覽器會在標(biāo)簽加載完成后,立即請求圖片資源。

只要圖片加載完成,它就會被“畫”到canvas />中。圖片數(shù)據(jù)會被main-base.bundle.js文件中自定義的Blur()函數(shù)重新計算,可以看到它會產(chǎn)生模糊圖片的效果。盡管有些不同,不過該函數(shù)與StackBlur的模糊函數(shù)實現(xiàn)效果是相似的。在模糊圖片生成的同時,瀏覽器也會開始請求高清原圖資源。

最后原圖被加載到頁面上,canvas會被隱藏,只展示原圖。

最后的最后,感謝CSS的動畫功能,上述所有轉(zhuǎn)變過程會很流暢。

Markup

整個展示圖片的結(jié)構(gòu)

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. figure>  
  2.   div>  
  3.     div/> !-- 這個div用于做圖片加載過程中的占位符 -->  
  4.     img/> !-- 低像素的縮略圖 -->  
  5.     canvas/> !-- 給上面的縮略圖加上模糊效果 -->  
  6.     img/> !-- 展示的高清無碼原圖 -->  
  7.     noscript/> !-- fallback for no JS -->  
  8.   /div>  
  9. /figure>  
  10. figure name="7012" id="7012" class="graf--figure graf--layoutFillWidth graf-after--h4">  
  11.   div class="aspectRatioPlaceholder is-locked">  
  12.     div class="aspect-ratio-fill" style="padding-bottom: 66.7%;">/div>  
  13.     div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="1*sg-uLNm73whmdOgKlrQdZA.jpeg" data-width="2000" data-height="1333" data-scroll="native">  
  14.       img src="https://cdn-images-1.medium.com/freeze/max/27/1*sg-uLNm73whmdOgKlrQdZA.jpeg?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail">  
  15.         canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="47">/canvas>  
  16.         img class="progressiveMedia-image js-progressiveMedia-image __web-inspector-hide-shortcut__" data-src="https://cdn-images-1.medium.com/max/1800/1*sg-uLNm73whmdOgKlrQdZA.jpeg" src="https://cdn-images-1.medium.com/max/1800/1*sg-uLNm73whmdOgKlrQdZA.jpeg">  
  17.         noscript class="js-progressiveMedia-inner">img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1800/1*sg-uLNm73whmdOgKlrQdZA.jpeg">/noscript>  
  18.     /div>  
  19.   /div>  
  20. /figure>  

PS:實際圖片大小要根據(jù)設(shè)備尺寸來設(shè)定。

嘗試重新實現(xiàn)同樣效果

我在CodePen重新通過使用CSS替代canvas實現(xiàn)同樣的加載效果。下面的圖片展示了整個加載過程中,圖片的轉(zhuǎn)變效果。

這么做是否值?

很明顯,現(xiàn)在有許多種方法來實現(xiàn)同樣的效果。要知道在幾年前如此高性能的方式實現(xiàn)動畫和模糊效果還是不可能的。但事實上,大多數(shù)時候延遲瓶頸,并不是設(shè)備本身的原因,因此這些技巧值得我們探索。 控制加載圖片過程有以下優(yōu)點:

懶加載:使用JS來請求資源讓我們可以靈活控制圖片資源選擇。小圖可以請求同一縮略圖,大圖則可以根據(jù)瀏覽器視窗大小來選擇加載尺寸不同的圖片。
更好的占位符: 相比于純色占位符,使用縮略圖添加模糊效果后會有更好的視覺效果,同時圖片大小也只有2k左右不會犧牲負(fù)載。
裁剪圖片大?。篗edium根據(jù)訪問設(shè)備的不同,返回不同尺寸的圖片,這樣可以很好的優(yōu)化頁面的加載速度,同時避免移動設(shè)備浪費過多流量。
其他版本

在實現(xiàn)Medium原方法之前,我覺得我可以在我的網(wǎng)站使用其他方法來實現(xiàn)。

內(nèi)聯(lián)圖片數(shù)據(jù)

我們可以在img中添加縮略圖的URLs來直接請求資源。這樣做雖然會增加HTML的內(nèi)容,但是可以加快占位符的生成速度。瀏覽器加載好HTML標(biāo)簽就立即下載圖片文件資源。加了模糊效果后圖片的質(zhì)量就無所謂了,我測試使用0.5k大小的圖片與2k大小的圖片得到相似的顯示效果。

模糊效果

默認(rèn)情況下,當(dāng)瀏覽器將一個小圖像放大,它應(yīng)用光滑效果處理圖像的模糊效果。圖像的效果也可以關(guān)閉,像QR碼。

[…]the browser would render it in a way that didn’t make it look blocky[…] from Google Developers.
它可以在Chrome、Safari和Firefox中有效,盡管光滑效果在Chrome中更有效,你可以在這里看效果。

下面我們看看如何做到光滑效果。圖片只有27px寬,并且像素非常低,將它放大會產(chǎn)生很可怕的效果。事實卻并沒有。如果上述效果能滿足你的要求,那你就不需要更復(fù)雜的效果替換了。

上述圖片模糊效果也可以使用CSS Filter Effects實現(xiàn),它還支持IE瀏覽器哦(IE一生黑)。我相信Medium在使用canvas方法之前一定也嘗試過使用這個功能更強的方法。但是可能是出于一定原因他們放棄了這一方法。這一方法的優(yōu)點是你可以設(shè)定模糊度,并且可以通過CSS達(dá)成其他目的。

也可以使用SVG的filter來達(dá)成同樣目的,如The “Blur Up” Technique for Loading Background Images 和 Textured Gradients in Pure CSS兩篇文章提到的。

其他辦法提升占位符:Google 圖片搜索

他們選擇圖片的一種主顏色,并用其作為占位塊的背景色。這樣做會給用戶一種圖片加載速度更快的體驗。

更先進的方法:Facebook的200 byte技術(shù)

年初Facebook發(fā)表過一篇"The technology behind preview photos"的文章,這篇文章主要說明如何預(yù)覽一個沒有JPEG頭的42 * 42px的圖片。 使用場景有些不同,這“圖片”被用于Facebook的手機端,它知道如何組成一個有效的JPEG圖片。此處我們在Web端使用的話需要編寫JavaScript代碼,這樣做同樣會增加存儲資源。當(dāng)然我們可以通過在服務(wù)器端組成這個圖片解決這一問題,但是這樣仍需要一些JavaScript代碼發(fā)送申請圖片資源的請求。

無論如何,這個方法對于Web端來說有點大材小用,但我還是希望能夠?qū)⑵渥鳛橐粋€參考。Using WebP for generating this preview images同樣可以節(jié)省內(nèi)存,并且不需要使用如此創(chuàng)造性的解決方法。

LQIP: Low Quality Image Placeholders

與其等待最終的圖像呈現(xiàn),我們可以先提供一個高度壓縮的圖片,然后切換到大圖。這就是LQIP方法的思路。這一方法與Medium相似,不過是使用相同尺寸,但壓縮更高的圖片。

總結(jié)

隨著頁面加載的圖片越來越多,需要勤于思考頁面的加載過程。因為這會影響加載效率和用戶體驗。 如果你生成幾個縮略圖大小的圖片,你可以實驗使用一個非常小的圖片作為背景,等待最終圖片被加載出來。

標(biāo)簽:曲靖 黔南 烏海 萍鄉(xiāng) 昌都 郴州 上饒 克拉瑪依

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談Web前端針對圖片顯示的優(yōu)化方案》,本文關(guān)鍵詞  淺談,Web,前端,針對,圖片,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談Web前端針對圖片顯示的優(yōu)化方案》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談Web前端針對圖片顯示的優(yōu)化方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    5566中文字幕一区二区电影| 精品日韩一区二区| 欧美乱熟臀69xxxxxx| 亚洲天天做日日做天天谢日日欢| 精品久久久久久久久久久院品网| 亚洲美女区一区| 色噜噜狠狠成人网p站| 一区二区三区高清在线| 色伊人久久综合中文字幕| 亚洲黄色免费网站| 欧美日韩1234| 国产精品系列在线播放| 亚洲天堂av老司机| 欧美一区二区免费视频| 国产精品自在欧美一区| 一区二区三区在线视频播放| 欧美高清你懂得| 丰满放荡岳乱妇91ww| 亚洲精品国产a| 日韩欧美一级在线播放| 白白色 亚洲乱淫| 亚洲成人黄色影院| 久久综合色婷婷| 色域天天综合网| 美女视频免费一区| 最好看的中文字幕久久| 日韩视频一区二区三区在线播放 | 色综合天天性综合| 日本在线不卡一区| 2021久久国产精品不只是精品| 波波电影院一区二区三区| 亚洲成av人片一区二区三区| 日本一区二区三区四区在线视频 | 日韩伦理av电影| 日韩免费高清电影| 色悠悠久久综合| 国产成人亚洲综合色影视| 亚洲成人黄色小说| 一区精品在线播放| 久久久影视传媒| 91麻豆精品国产自产在线 | 国产亚洲污的网站| 欧美一区二区在线不卡| 91网址在线看| 成人一区二区三区在线观看| 老司机精品视频线观看86| 亚洲美女一区二区三区| 久久久久高清精品| 欧美一区二区大片| 欧美日韩国产成人在线91| 99精品桃花视频在线观看| 国内外精品视频| 精品制服美女久久| 日韩精品一级中文字幕精品视频免费观看| 欧美国产激情二区三区| 久久精品人人做人人综合| 91精品国产色综合久久久蜜香臀| 在线观看欧美黄色| 欧美午夜电影网| 日本韩国欧美一区二区三区| 99精品1区2区| 日本电影亚洲天堂一区| 99久久精品免费精品国产| 国产91露脸合集magnet| 大尺度一区二区| 风间由美一区二区av101| 成人综合日日夜夜| av中文字幕一区| 欧洲在线/亚洲| 欧美日本一区二区| 日韩欧美一区二区三区在线| 欧美一区二区日韩| 久久综合色天天久久综合图片| 精品88久久久久88久久久| 国产女同性恋一区二区| 亚洲欧洲日韩在线| 亚洲黄色小说网站| 免费高清视频精品| 国产成人精品免费网站| av午夜一区麻豆| 欧美婷婷六月丁香综合色| 911精品国产一区二区在线| 日韩三级精品电影久久久| 国产人伦精品一区二区| 亚洲女同ⅹxx女同tv| 日韩成人精品在线| 国产精品99久久久久久宅男| 日本韩国欧美一区二区三区| 5566中文字幕一区二区电影| 久久久一区二区三区| 一区二区久久久久久| 蜜臀a∨国产成人精品| 国产成人av资源| 欧美日韩国产片| 国产精品国产三级国产aⅴ中文 | 在线观看网站黄不卡| 欧美日韩另类国产亚洲欧美一级| 精品精品欲导航| 国产精品护士白丝一区av| 一区二区成人在线| 国产黄色91视频| 欧美色图第一页| 欧美电影免费观看高清完整版在 | 欧美一区二区视频在线观看 | 26uuu久久天堂性欧美| 亚洲日本va午夜在线影院| 久久国产人妖系列| 91久久精品网| 国产欧美精品一区二区色综合| 亚洲一区二区三区激情| 丁香啪啪综合成人亚洲小说| 欧美精品欧美精品系列| 国产精品久久久久影院亚瑟| 国精产品一区一区三区mba桃花| 欧美日韩一区二区在线观看| 中文字幕一区二区三区在线不卡| 精品一区二区三区在线观看国产| 欧美三日本三级三级在线播放| 亚洲欧美自拍偷拍色图| 国模无码大尺度一区二区三区| 91精品婷婷国产综合久久性色| 亚洲三级在线免费| 国产一区二区三区在线观看精品 | 一二三区精品视频| 波多野结衣欧美| 国产欧美一区二区在线观看| 精品一区二区三区视频| 日韩一区二区三区在线视频| 一区二区三区**美女毛片| 97久久超碰国产精品| 国产亚洲精品精华液| 韩国欧美一区二区| 久久免费精品国产久精品久久久久| 日韩国产精品久久久久久亚洲| 在线观看免费亚洲| 亚洲欧洲综合另类| 色琪琪一区二区三区亚洲区| 亚洲精品五月天| 欧美性淫爽ww久久久久无| 一区二区免费在线| 欧美日韩亚洲高清一区二区| 亚洲一二三专区| 欧美影视一区在线| 亚洲成人一区在线| 欧美一级黄色片| 国产一区二区久久| 中文幕一区二区三区久久蜜桃| 成人免费视频app| 中文字幕一区二区三区四区| 欧美影视一区在线| 日本麻豆一区二区三区视频| 日韩欧美一级二级| 国产福利91精品一区| 国产精品的网站| 欧美亚洲一区三区| 经典三级视频一区| 国产精品黄色在线观看| 欧美午夜精品理论片a级按摩| 秋霞电影网一区二区| 久久久久97国产精华液好用吗 | 狠狠色丁香九九婷婷综合五月| 精品国产99国产精品| 成人理论电影网| 日本不卡视频在线观看| 久久天天做天天爱综合色| 国产精品亚洲а∨天堂免在线| 1024国产精品| 日韩一区二区三区观看| 国产69精品久久99不卡| 亚洲成人av一区二区| 久久综合色一综合色88| 91视频在线看| 麻豆精品久久久| 亚洲免费成人av| 日韩免费视频一区二区| 色乱码一区二区三区88| 精品一区二区在线观看| 亚洲色图都市小说| 欧美xxxxx牲另类人与| 91麻豆自制传媒国产之光| 久久疯狂做爰流白浆xx| 一二三区精品视频| 国产欧美日韩在线| 欧美精品免费视频| 91亚洲精品乱码久久久久久蜜桃| 日本成人在线电影网| 一区在线观看视频| 国产亚洲精久久久久久| 欧美一区日本一区韩国一区| 91久久精品一区二区三区| 国产一区日韩二区欧美三区| 亚洲成a人v欧美综合天堂下载 | 久久久久久久网| 欧美日韩激情一区二区| 91在线观看美女| 丰满放荡岳乱妇91ww| 久久99精品久久久久久| 香蕉久久一区二区不卡无毒影院| 亚洲欧洲综合另类| 国产精品国产馆在线真实露脸 |