校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

淺談Web前端針對圖片顯示的優化方案

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

我在Medium瀏覽帖子的時候發現他們的圖片加載效果真的很贊誒。首先載入一個低像素的模糊圖片,然后逐漸轉變為高清大圖。這個過程體驗真的很好,所以我希望能夠明白他們是使用什么方法做到的。

Medium的技術

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

具體執行過程

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

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

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

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

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

Markup

整個展示圖片的結構

XML/HTML Code復制內容到剪貼板
  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:實際圖片大小要根據設備尺寸來設定。

嘗試重新實現同樣效果

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

這么做是否值?

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

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

在實現Medium原方法之前,我覺得我可以在我的網站使用其他方法來實現。

內聯圖片數據

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

模糊效果

默認情況下,當瀏覽器將一個小圖像放大,它應用光滑效果處理圖像的模糊效果。圖像的效果也可以關閉,像QR碼。

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

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

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

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

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

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

更先進的方法:Facebook的200 byte技術

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

無論如何,這個方法對于Web端來說有點大材小用,但我還是希望能夠將其作為一個參考。Using WebP for generating this preview images同樣可以節省內存,并且不需要使用如此創造性的解決方法。

LQIP: Low Quality Image Placeholders

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

總結

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

標簽:曲靖 黔南 烏海 萍鄉 昌都 郴州 上饒 克拉瑪依

巨人網絡通訊聲明:本文標題《淺談Web前端針對圖片顯示的優化方案》,本文關鍵詞  淺談,Web,前端,針對,圖片,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談Web前端針對圖片顯示的優化方案》相關的同類信息!
  • 本頁收集關于淺談Web前端針對圖片顯示的優化方案的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产午夜精品久久久久久久 | 成人av电影在线| 99国产精品久久久久久久久久 | 日韩毛片在线免费观看| 在线观看一区二区精品视频| 97久久精品人人澡人人爽| 麻豆精品一区二区三区| 老司机免费视频一区二区| 一区二区三区在线播放| 欧美亚男人的天堂| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 91蜜桃网址入口| 国产精品二三区| 成人黄色小视频| 久久综合九色综合97_久久久| 蜜乳av一区二区三区| 制服.丝袜.亚洲.另类.中文| 国产精品成人免费精品自在线观看| 中文字幕亚洲电影| 不卡高清视频专区| 亚洲欧洲www| 日本人妖一区二区| 日韩欧美一区二区久久婷婷| 亚洲成人黄色影院| 日韩欧美一二区| 亚洲高清中文字幕| 在线观看区一区二| 欧美三级日韩三级| 国产精品麻豆欧美日韩ww| 1024成人网| 91免费视频大全| 三级欧美在线一区| 精品日韩一区二区三区| 色av综合在线| 日韩精品专区在线影院重磅| 中文av一区特黄| 国产成人精品一区二区三区网站观看| 91丨九色丨尤物| 欧美精品一区二区三| 欧美激情在线一区二区| 91成人免费在线视频| 精品国产伦一区二区三区观看体验 | 久久看人人爽人人| 欧美色图在线观看| 91色.com| 国产精品一区二区黑丝| 欧美激情中文字幕一区二区| 国产精品一区二区在线观看不卡 | 亚洲另类中文字| 国产欧美一区二区在线| va亚洲va日韩不卡在线观看| 久久久久成人黄色影片| 激情综合色综合久久| 全国精品久久少妇| 日本在线不卡一区| 一区二区三区欧美在线观看| 亚洲色图另类专区| 亚洲丝袜美腿综合| 久久女同性恋中文字幕| 国产成人综合视频| 久久国内精品视频| 精品写真视频在线观看| 精品影视av免费| 国产69精品久久久久777| 在线免费观看日本欧美| 国产三级欧美三级日产三级99| www.欧美日韩国产在线| 国产精品18久久久久| 欧美二区三区91| 欧美日韩久久久| 7777精品伊人久久久大香线蕉完整版 | 色播五月激情综合网| 99视频精品在线| 日韩视频免费观看高清完整版在线观看| 91蜜桃在线免费视频| 欧美最猛黑人xxxxx猛交| 日韩视频免费观看高清完整版在线观看| 久久影院午夜论| 亚洲综合在线观看视频| 久久激五月天综合精品| 欧美一区午夜精品| 亚洲一区二区三区影院| 三级久久三级久久| 成人av影视在线观看| 久久亚洲一区二区三区明星换脸 | 91精品国产综合久久精品| 亚洲欧美日韩精品久久久久| 成人免费黄色大片| 亚洲一区二区欧美日韩| 日韩一区二区在线看片| 国产精品一区二区男女羞羞无遮挡| 久久久一区二区三区捆绑**| 成av人片一区二区| 日韩av一区二区在线影视| 久久欧美一区二区| 777奇米成人网| 99久久精品国产导航| 日韩电影免费一区| 国产精品看片你懂得| 精品美女一区二区三区| 一本大道久久a久久精品综合| 精久久久久久久久久久| 综合婷婷亚洲小说| 欧美大胆一级视频| 欧美影院一区二区三区| 成人动漫av在线| 成人动漫一区二区在线| 国产一区二区三区视频在线播放| 亚洲一区二区三区四区在线观看 | 日韩一区中文字幕| 久久久久久免费毛片精品| 97国产一区二区| 国产一区二区成人久久免费影院 | 中文字幕国产精品一区二区| 日韩一级片网站| 日韩一级免费一区| 色94色欧美sute亚洲线路一ni| 国产一区二区影院| 国产一区二区三区四区五区入口 | 中文成人av在线| 欧美精品粉嫩高潮一区二区| 欧美性感一类影片在线播放| zzijzzij亚洲日本少妇熟睡| 成人性生交大片免费看视频在线| 狠狠色综合色综合网络| 国产伦精品一区二区三区视频青涩| 久久国内精品视频| 国产福利91精品一区| 色综合天天综合狠狠| 欧美亚洲另类激情小说| 欧美成人video| 精品噜噜噜噜久久久久久久久试看| 欧美福利视频导航| 国产精品久久久久久久裸模| 一色屋精品亚洲香蕉网站| 午夜亚洲福利老司机| 国产大片一区二区| 色综合亚洲欧洲| 久久精品男人天堂av| 欧美激情一区在线| 婷婷成人激情在线网| 国产aⅴ精品一区二区三区色成熟| 99国产精品久| 91麻豆精品国产| 亚洲欧美电影院| 精品影视av免费| 日韩一区二区三区四区| 亚洲精品大片www| 成人三级伦理片| 久久精品夜夜夜夜久久| 免费成人av在线播放| 欧美性极品少妇| 亚洲成人激情自拍| 日本国产一区二区| 亚洲一区在线播放| 在线中文字幕一区| 亚洲电影激情视频网站| fc2成人免费人成在线观看播放| 欧美大尺度电影在线| 精品无人区卡一卡二卡三乱码免费卡| 这里是久久伊人| 久久99这里只有精品| 久久蜜桃av一区二区天堂 | 亚洲视频你懂的| 国产精品一区二区三区99| 久久久精品免费观看| 亚洲日本va午夜在线电影| 成人丝袜18视频在线观看| 日韩欧美国产成人一区二区| 一区二区三区色| 狠狠色狠狠色综合| 国产精品亚洲人在线观看| 亚洲精品在线观看网站| 亚洲成人动漫av| 亚洲精品一区二区三区四区高清| 欧美日本一道本| 日韩成人一级片| 久久综合狠狠综合| 美女久久久精品| 久久不见久久见免费视频1| 日本韩国欧美一区二区三区| 日本韩国一区二区三区视频| 国产三级精品视频| 亚洲婷婷在线视频| 99riav久久精品riav| 综合色天天鬼久久鬼色| 欧美日韩国产一区| 五月婷婷另类国产| 欧美日韩中文字幕精品| **性色生活片久久毛片| 欧美久久久久中文字幕| 99久久综合99久久综合网站| 亚洲美女区一区| 不卡的av在线播放| 亚洲精品一二三四区| 日韩欧美在线一区二区三区| 国产精品一区在线| 亚洲福利一二三区| 精品欧美乱码久久久久久| 一区二区三区在线看|