iframe异步加载_5种延迟加载图像的方法以帮助你提升网站性能与用户体验
什么是延遲加載?
延遲加載圖像是指異步加載網(wǎng)站上的圖像,也就是說,在首屏內(nèi)容完全加載后,甚至有條件地,僅當(dāng)它們出現(xiàn)在瀏覽器的視口中時。這意味著,如果用戶沒有完全向下滾動,則位于頁面底部的圖像甚至都不會被加載。許多網(wǎng)站都使用這種方法,但是在圖片繁多的網(wǎng)站上尤其明顯。嘗試瀏覽你最喜歡的在線網(wǎng)站以獲得高分辨率照片,你很快就會意識到該網(wǎng)站僅加載有限數(shù)量的圖像的方式。向下滾動頁面時,你會看到占位符圖像迅速填充真實(shí)圖像進(jìn)行預(yù)覽。例如,請注意Unsplash.com上的加載程序:將頁面的該部分滾動到視圖中會觸發(fā)使用全分辨率照片替換占位符:為什么要關(guān)心延遲加載圖像?
至少有兩個極好的原因,你應(yīng)該考慮為網(wǎng)站延遲加載圖像:如果你的網(wǎng)站使用JavaScript來顯示內(nèi)容或向用戶提供某種功能,則快速加載DOM變得至關(guān)重要。腳本通常要等到DOM完全加載后才能開始運(yùn)行。在包含大量圖像的網(wǎng)站上,延遲加載(或異步加載圖像)可能會導(dǎo)致用戶停留或離開你的網(wǎng)站有所不同。
由于大多數(shù)惰性加載解決方案都是通過僅在用戶滾動到在視口內(nèi)可見圖像的位置時才加載圖像來工作的,因此如果用戶從未到達(dá)該點(diǎn),則將永遠(yuǎn)不會加載這些圖像。這意味著可以節(jié)省大量帶寬,為此,大多數(shù)用戶,特別是那些在移動設(shè)備上訪問Web且連接緩慢的用戶,將非常感謝你。
1、本機(jī)延遲加載
圖像和iframe的本機(jī)延遲加載非???。沒有什么比下面的標(biāo)記更直接了:如你所見,沒有JavaScript,沒有src屬性值的動態(tài)交換,只是普通的HTML。該loading屬性使我們可以選擇延遲屏幕外圖像和iframe,直到用戶滾動到頁面上的位置為止。loading可以采用以下三個值之一:lazy:非常適合延遲加載
eager:指示瀏覽器立即加載指定的內(nèi)容
auto:保留延遲加載或不延遲加載到瀏覽器的選項(xiàng)。
3?、Lozad.js
實(shí)現(xiàn)圖像的延遲加載的一種快速簡便的替代方法是讓JS庫為你完成大部分工作。Lozad是純JavaScript中的高性能,輕量且可配置的惰性加載器,沒有任何依賴關(guān)系。你可以使用它來延遲加載圖像,視頻,iframe和更多內(nèi)容,并且它使用Intersection Observer API。你可以將Lozad包含在npm / Yarn中,并使用所選的模塊捆綁器將其導(dǎo)入:npm?install?--save?lozadyarn?add?lozadimport lozad from 'lozad';另外,你可以簡單地使用CDN下載該庫并將其添加到HTML頁面底部的< script>標(biāo)記中:接下來,對于基本實(shí)現(xiàn),將lozad類添加到標(biāo)記中的資產(chǎn):最后,在你的JS文檔中實(shí)例化Lozad:const observer = lozad();observer.observe();你將在Lozad GitHub存儲庫中找到有關(guān)如何使用該庫的所有詳細(xì)信息。如果你不想深入了解Intersection Observer API的工作原理,或者只是在尋找適用于各種內(nèi)容類型的快速實(shí)現(xiàn),則Lozad是一個不錯的選擇。僅注意瀏覽器支持,并最終將此庫與用于Intersection Observer API的polyfill集成。4、延遲加載具有模糊的圖像效果
你首先看到的是圖像的模糊,低分辨率副本,而其高分辨率版本則被延遲加載:你可以通過多種方式來延遲加載具有這種有趣的模糊效果的圖像。我最喜歡的技術(shù)是Craig Buckler。這是此解決方案的全部優(yōu)點(diǎn):性能:僅463字節(jié)的CSS和1,007字節(jié)的最小JavaScript代碼
支持視網(wǎng)膜屏幕
無依賴關(guān)系:不需要jQuery或其他庫和框架
逐步增強(qiáng)功能以抵消較舊的瀏覽器和JavaScript失敗
5、 Yall.js
Yall是功能豐富的延遲加載腳本,用于圖像,視頻和iframe。更具體地說,它使用Intersection Observer API并在必要時巧妙地使用傳統(tǒng)的事件處理程序技術(shù)。在文檔中包含Yall時,需要按以下方式對其進(jìn)行初始化: document.addEventListener("DOMContentLoaded", yall);接下來,要延遲加載一個簡單的img元素,在標(biāo)記中需要做的就是:請注意以下幾點(diǎn):你將懶惰的類添加到元素
src的值是一個圖像占位符
你要延遲加載的圖像的路徑在src屬性內(nèi)部
Intersection Observer API的出色性能
出色的瀏覽器支持(可回溯到IE11)
無需其他依賴項(xiàng)
結(jié)論
以上就是我分享的關(guān)于延遲加載圖像的5種方法,你可以開始在項(xiàng)目中進(jìn)行試驗(yàn)和測試。如果你還有更好的方法,也可以給我留言,我們一起學(xué)習(xí)進(jìn)步,最后,感謝你的閱讀。總結(jié)
以上是生活随笔為你收集整理的iframe异步加载_5种延迟加载图像的方法以帮助你提升网站性能与用户体验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 葫芦鸡为什么叫葫芦鸡?
- 下一篇: android手机电话铃声设置,安卓手机