使用lazysizes延遲加載圖片

2020-12-25 小象Web開發

延遲加載是指在資源需要時才加載,而不是預先加載。這樣做可以在頁面首次加載時不佔用資源,避免載入從未用到的文件。

在頁面首次加載時視區外的圖片特別適合這種技術。最棒的是 lazysizes 讓這種技術使用起來非常簡單。

什麼是 lazysizes?

lazysizes 是最流行的用於延遲加載圖片的庫。它會在用戶滾動頁面時智能地加載圖片,優先加載用戶很快要看到的圖片。

引入 lazysizes

引入 lazysizes 非常簡單:

在網頁中增加 lazysizes 的 script 標籤選擇你想延遲加載的圖片更新那些圖片的 img 標籤或 picture 標籤

添加 lazysizes 的 script 標籤

更新 img 或 picture 標籤

如果是 img 標籤,修改前:

修改後:

修改 img 標籤時,有兩處更改:

在 class 屬性中增加 lazyload 類名:它會告訴 lazysizes 該圖片應當延遲加載。修改 src 屬性為 data-src:當加載圖片時,lazysizes 代碼會從 data-src 屬性中讀取它的值然後設置圖片的 src 屬性。

如果是 picture 標籤,修改前:

修改後:

修改 picture 標籤時,有兩處更改:

在 img 標籤上增加 lazyload 類名修改 source 標籤的 srcset 屬性為 data-srcset。

驗證

打開瀏覽器的開發者工具,然後向下滾動網頁查看有什麼變化。在滾動時應該可以看到發起了新的網絡請求,然後 img 標籤的 class 值由 lazyload 變為 lazyloaded。

提示:現在瀏覽器已經內置了延遲加載功能!可以使用 loading 屬性來使用內置的延遲加載功能,對於沒有內置支持的瀏覽器再使用 lazysizes 作為備用方案。

相關焦點

  • 是時候延遲加載屏幕外的iframe了!
    對於圖片延遲加載的內置支持已經在 Chrome 76 中變成現實,稍後 Firefox 也支持了這一功能。另一個好消息是對於 iframe 延遲加載的內置支持也已經標準化,目前已經在 Chrome 和基於 Chromium 的瀏覽器中得到了支持。延遲加載是通過新增的 loading 屬性來實現的。
  • 帝國cms+jquery.lazyload.js實現圖片延遲懶加載的極簡方法
    (如上圖所示,相比於js等文本類文件,三個紅色標註的圖片文件,就算kb更小,加載時間亦要久很多)對於較大型的、有專業程式設計師配置的網站運營者來說,為網站中的圖片實現惰性加載(專業術語,俗稱為延遲加載,懶加載),是一件正常不過的事。畢竟,懶加載不是什麼新技術,好幾年前就已經在較大的網際網路站普及了。那問題來了:什麼是懶加載?
  • 深入理解圖片和框架的原生懶加載功能
    你可以使用強制刷新(CTRL + Shift + R)重新觸發範圍請求。如果加載已經被延遲了(比如初始值為 lazy,後來用 JavaScript 改成了 eager),那麼瀏覽器也應該立即加載圖片。懶加載到底有多「懶」,這應該由瀏覽器來解釋,而說明文檔表明,懶加載始於用戶將頁面滾動到圖片附近之時,意即當圖片即將進入視野時加載。loading 特性的原理與基於 JavaScript 的懶加載庫不同,原生懶加載功能使用了一種預檢請求來獲取圖片文件的前 2048 字節數據。
  • Chrome 現已支持延遲加載網頁中的 iframe
    一年前,谷歌曾在 Chrome 76 中添加了對圖片的延遲加載支持。
  • Chrome現已支持延遲加載網頁中的iframe元素 - 太平洋電腦網
    一年前,谷歌為 Chrome 76 引入了延遲加載圖片的功能。 昨日,Chrome 工程主管 Addy Osmani 又宣布,他們將在新版瀏覽器中啟用延遲加載 iframe 元素的標準功能。在啟用 iframe 延遲加載之後,Chrome 團隊得以節省 2-3% 的中位數據量、1-2% 的首次內容渲染、以及 2% 的首次輸入延遲(FID)。
  • Chrome現已支持延遲加載網頁中iframe 可以節省2-3%中位數據量
    一年前,谷歌曾在 Chrome 76 中添加了對圖片的延遲加載支持。近日,ChromeEng 經理 Addy Osmani 則宣布,該團隊已將 iframe 的延遲加載作為標準功能,添加至了 Chrome 瀏覽器和 Chromium 瀏覽器中。  該功能會延遲窗口外 iframe 的加載,直到用戶將網頁滾動到附近為止。
  • Chrome將可延遲加載網頁中iframe元素 提升加載速度
    DoNews 7月27日消息(記者 劉文軒)延遲加載一些網頁元素可以幫助提升網頁加載速度,Google曾在Chrome 76中提供延遲加載圖片的功能。現在,Google Chrome團隊engineering manager Addy Osmani宣布,延遲加載iframe將作為Chrome和Chromium的標準功能提供。也就是說除了Google Chrome瀏覽器外,基於Chromium的Brave、微軟Edge等瀏覽器也可以把它作為標準功能。
  • ...balancer中文是什麼意思 _LazyDay makeup balancer - OSCHINA
    https://my.oschina.net/u/567296/blog/304055 HIBERNATE的持久化對象加載策略
  • 響應式圖片解決方案
    可以肯定的是網頁已經有了嚴重的大小問題,而圖片就是罪魁禍首。雖然已經有很多種 措施 可以減少網頁加載量,但或許更重要的步驟之一是確保響應式圖片的加載方案。通過利用響應式圖片解決方案,我們可以確保最佳的圖片被加載,帶寬不會被過大的圖片所浪費。因此 W3C 定義了 picture 標籤:基於檢測客戶端設備類型的可替換圖片方案。
  • Edge/Chrome做出細節改進:iframe惰性加載
    近日在 Chrome 中新增了清除瀏覽數據改進、iframe 的惰性加載;在 Edge 瀏覽器中清除自動完成條目的新功能。首先是原生支持 iframe 的惰性加載(又稱延遲加載)。iframes用於將一個網頁嵌入到另一個網頁中,如今最常用來嵌入其他網絡服務的媒體,如推特、Instagram帖子、YouTube視頻甚至 Spotify 曲目。
  • JS加載慢?谷歌大神帶你飛!(文末送電子書)
    這種經歷,想必大家都有,因為對於手機瀏覽器來說,運行加載JavaScript會消耗不小的系統資源,因此延遲了用戶的交互響應,今天我將會給大家介紹一些有效的方法策略,提升用戶在手機端的使用體驗。太多的「交互」,讓網站更臃腫!當你的用戶用手機訪問你的網站時,你的網站讓用戶的瀏覽器加載了大量的文件,其中很多是腳本文件。
  • CSS鏤空圖片transition過渡初加載背景色塊問題解決
    說到CSS控制圖標顏色,我們自然而然會想到icon fonts, 或者使用SVG sprites技術,或者使用混合模式來實現。然而,都是有不足的,比方說:然而,這種實現有一個致命的不足,就是CSS的加載和背景圖片的加載不是同步的,尤其首次加載的時候,圖片是異步的,具有明顯的延遲,於是,我們會看到非常醜陋的色塊在一瞬間出現了(大家可以強刷demo體驗到)!
  • 快到飛起:提高網頁加載速度的優化思路與技巧
    前端能做什麼在提高網頁加載方面,前端主要要從以下幾個方面入手:減少代碼大小、優化代碼結構、優化網絡請求、頁面異步延遲加載。第三是使用圖片的時候的小細節,能用background使用圖片就儘量不用img標籤來加載圖片,另外如無必要,能使用png8就不使用gif格式。第四就是圖片預加載和延遲加載技術,比如使用縮略圖,默認佔位符替代圖片,但不影響後續頁面內容的呈現。
  • 瀏覽器圖片無法加載?Flash大廳幫您解決問題
    大家在網上衝浪的時候是否和小編一樣經常遇到網站內信息無法正常顯示、瀏覽器圖片加載不出來的情況?如果是因為網速原因,刷新一下即可解決,但如果多次刷新仍不能正常顯示,則有可能是因為網頁的Flash播放器存在問題,需要進行播放器軟體的修復。
  • Android Glide庫使用,一句話完成圖片加載、gif、高斯模糊等 && 【菜鳥窩的三個實戰項目推薦】
    Glide此庫為本框架默認封裝圖片加載庫,可參照著例子更改為其他的庫,Api和Picasso差不多,緩存機制比Picasso複雜,速度快,適合處理大型圖片流,支持gfit,Fresco太大了!,在5.0一下優勢很大,5.0以上系統默認使用的內存管理和Fresco類似..
  • 一文了解頁面數據加載
    在項目進程中,遇到了一個數據加載常見的問題:前端向伺服器發送資源請求,服務端在返回數據的過程中,可能會因為網絡或者返迴路徑出錯等問題,導致資源沒有辦法順暢的在前端進行展示,可能會出現加載延遲或者加載失敗。
  • 使用STM32的SysTick實現精準延遲
    使用SysTick的普通計數模式對延遲進行管理.static u8 fac_us=0;//us延時倍乘數static u16 fac_ms=0;//ms延時倍乘數本文引用地址:http://www.eepw.com.cn/article/201611/319320.htm//初始化延遲函數void delay_init(u8 SYSCLK){
  • 無限滾屏、分頁亦或加載更多,到底怎麼選?
    測試顯示沒有哪一種方法在所有情境下都是完美的,不同的情境要求使用「加載更多」的三種變體之一。我們將在本文剩餘部分講到這三種變體: 對分類列表頁,結合使用「加載更多」和延遲加載。對搜索結果頁,使用「加載更多」,最好是讓展示商品的數量基於相關度靈活可變。
  • 影響網絡速度的兩個重要因素:帶寬和延遲!
    影響網站速度的因素有很多,這裡主要針對網絡通信方面來介紹,即「帶寬」與「延遲」。「網絡帶寬」和「網絡延遲」有時可互換使用,但它們實際上描述了兩個獨立的概念。理解它們之間的差異是理解前端Web性能的關鍵。什麼是帶寬?