济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】

QQ:在線客服

24小時客服:15069066861 建站流程

NEWS建網站知識

濟南建網站知識,網站建設技術靈魂總結
Website news, Technical summary of soul

延遲加載圖像以提高濟南網站建設性能的五種方法

點擊次數:更新時間:2020-06-16 14:06:20【打印】【關閉】

由于圖像是濟南網站建設上最流行的內容類型之一,因此網站上的頁面加載時間很容易成為問題。

即使進行了適當的優化,圖像也可能占很大的比重。這可能會對訪問者必須等待才能訪問您網站上的內容的時間產生負面影響。除非您想出一種不會干擾速度感知的圖像加載解決方案,否則它們很可能會耐心地在其他地方導航。

在本文中,您將了解五種延遲加載圖像的方法,可以將它們添加到Web優化工具包中以改善網站上的用戶體驗。

什么是延遲加載?

延遲加載圖像是指異步加載網站上的圖像-也就是說,在首屏內容完全加載后,甚至有條件地,僅當它們出現在瀏覽器的視口中時。這意味著,如果用戶沒有完全向下滾動,則位于頁面底部的圖像甚至都不會被加載。

許多網站都使用這種方法,但是在圖片繁多的網站上尤其明顯。嘗試瀏覽您最喜歡的在線狩獵場以獲得高分辨率照片,您很快就會意識到該網站僅加載有限數量的圖像的方式。向下滾動頁面時,您會看到占位符圖像迅速填充真實圖像進行預覽。例如,請注意下圖中的加載程序:將頁面的該部分滾動到視圖中會觸發使用全分辨率照片替換占位符:

為什么要關心延遲加載圖像?

至少有兩個極好的原因,您應該考慮為網站延遲加載圖像:

  • 如果您的網站使用JavaScript來顯示內容或向用戶提供某種功能,則快速加載DOM變得至關重要。腳本通常要等到DOM完全加載后才能開始運行。在包含大量圖像的網站上,延遲加載(或異步加載圖像)可能會導致用戶停留或離開您的網站有所不同。
  • 由于大多數惰性加載解決方案都是通過僅在用戶滾動到在視口內可見圖像的位置時才加載圖像來工作的,因此如果用戶從未到達該點,則將永遠不會加載這些圖像。這意味著可以節省大量帶寬,為此,大多數用戶,特別是那些在移動設備上訪問Web且連接緩慢的用戶,將非常感謝您。

好吧,延遲加載圖像有助于提高網站性能,但是最好的解決方法是什么?

沒有完美的方法。

如果您生活和呼吸JavaScript,那么實現自己的延遲加載解決方案就不會成為問題。沒有什么比您自己編寫代碼給您更多的控制權了。

或者,您可以瀏覽Web以找到可行的方法并開始進行試驗。我就是這樣做的,并且遇到了這五種有趣的技術。

#1本機延遲加載

圖像和iframe的本機延遲加載非???。沒有什么比下面的標記更直接了:

<img src="myimage.jpg" loading="lazy" alt="..." />
<iframe src="content.html" loading="lazy"></iframe>

如您所見,沒有JavaScript,沒有src屬性值的動態交換,只是普通的舊HTML。

loading屬性使我們可以選擇延遲屏幕外圖像和iframe,直到用戶滾動到頁面上的位置為止。loading可以采用以下三個值之一:

 

  • lazy:非常適合延遲加載
  • eager:指示瀏覽器立即加載指定的內容
  • auto:保留延遲加載或不延遲加載到瀏覽器的選項。

這種方法無可匹敵:它的開銷為零,簡潔明了。但是,盡管在撰寫本文時,大多數主流瀏覽器都對該loading屬性提供了良好的支持,但并不是所有瀏覽器都支持該特性

要獲得有關此令人敬畏的延遲加載圖像功能的深入文章,包括瀏覽器支持的解決方法,請不要錯過Addy Osmani的“ Web的本地圖像延遲加載!”。

#2使用Intersection Observer API的延遲加載

Intersection Observer API是一個現代化的界面,你可以利用的延遲加載圖片和其他內容。

MDN引入此API的方法如下:

Intersection Observer API提供了一種異步觀察目標元素與祖先元素或頂級文檔的視口相交的變化的方法。

換句話說,異步監視的是一個元素與另一個元素的交集。

Denys Mishunov在“相交觀察器”和使用它的延遲加載圖像方面都有很好的教程。這就是他的解決方案。

假設您要延遲加載圖片庫。每個圖像的標記如下所示:

<img data-src="image.jpg" alt="test image">

請注意,圖像的路徑是如何包含在data-src屬性(而不是src屬性)中的。原因是使用src意味著圖像將立即加載,這不是您想要的。

在CSS中,為每個圖像賦予一個min-height值,例如100px。這為每個圖像占位符(不帶src屬性的img元素)提供了一個垂直尺寸:

img {
  min-height: 100px;
  /* more styles here */
}

然后,在JavaScript文檔中,創建一個config對象并將其注冊到intersectionObserver實例:

// create config object: rootMargin and threshold
// are two properties exposed by the interface
const config = {
  rootMargin: '0px 0px 50px 0px',
  threshold: 0
};

// register the config object with an instance
// of intersectionObserver
let observer = new intersectionObserver(function(entries, self) {
  // iterate over each entry
  entries.forEach(entry => {
    // process just the images that are intersecting.
    // isIntersecting is a property exposed by the interface
    if(entry.isIntersecting) {
      // custom function that copies the path to the img
      // from data-src to src
      preloadImage(entry.target);
      // the image is now in place, stop watching
      self.unobserve(entry.target);
    }
  });
}, config);

最后,您遍歷所有圖像并將它們添加到此iterationObserver實例中:

const imgs = document.querySelectorAll('[data-src]');
imgs.forEach(img => {
  observer.observe(img);
});

該解決方案的優點:實施起來輕而易舉,有效,并且intersectionObserver在計算方面做得很繁重。

 

另一方面,盡管大多數瀏覽器都支持Intersection Observer API最新版本,但并非所有瀏覽器都始終支持它。幸運的是,可以使用polyfill。

您可以在Denys的文章中了解有關Intersection Observer API的更多信息以及此實現的詳細信息。

#3 Lozad.js

實現圖像的延遲加載的一種快速簡便的替代方法是讓JS庫為您完成大部分工作。

Lozad是純JavaScript中的高性能,輕量且可配置的惰性加載器,沒有任何依賴關系。您可以使用它來延遲加載圖像,視頻,iframe和更多內容,并且它使用Intersection Observer API。

您可以將Lozad包含在npm / Yarn中,并使用所選的模塊捆綁器將其導入:

npm install --save lozad

yarn add lozad
import lozad from 'lozad';

另外,您可以簡單地使用CDN下載該庫并將其添加到HTML頁面底部的< script>標記中:

<script src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script>

接下來,對于基本實現,將lozad添加到標記中的資產:

<img class="lozad" data-src="img.jpg">

最后,在您的JS文檔中實例化Lozad:

const observer = lozad();
observer.observe();

您將在Lozad GitHub存儲庫中找到有關如何使用該庫的所有詳細信息。

如果您不想深入了解Intersection Observer API的工作原理,或者只是在尋找適用于各種內容類型的快速實現,則Lozad是一個不錯的選擇。

僅注意瀏覽器支持,并最終將此庫與用于Intersection Observer API的polyfill集成。

#4延遲加載具有模糊的圖像效果

如果您是中型讀者,那么您肯定已經注意到該網站如何在帖子中加載主圖像。

您首先看到的是圖像的模糊,低分辨率副本,而其高分辨率版本則被延遲加載:

中型網站上的占位符圖片模糊

中等網站上的高分辨率,延遲加載的圖像

您可以通過多種方式來延遲加載具有這種有趣的模糊效果的圖像。

我最喜歡的技術是Craig Buckler。這是此解決方案的全部優點:

  • 性能:僅463字節的CSS和1,007字節的最小JavaScript代碼
  • 支持視網膜屏幕
  • 無依賴關系:不需要jQuery或其他庫和框架
  • 逐步增強功能以??抵消較舊的瀏覽器和JavaScript失敗

您可以在“ 如何構建自己的漸進式圖像加載器”中閱讀有關它的全部信息,并在項目的GitHub存儲庫上下載代碼。

#5 Yall.js

Yall是功能豐富的延遲加載腳本,用于圖像,視頻和iframe。更具體地說,它使用Intersection Observer API并在必要時巧妙地使用傳統的事件處理程序技術。

在文檔中包含Yall時,需要按以下方式對其進行初始化:

<script src="yall.min.js"></script>
<script>
  document.addEventListener("DOMContentLoaded", yall);
</script>

接下來,要延遲加載一個簡單的img元素,在標記中需要做的就是:

<img class="lazy" src="placeholder.jpg" data-src="image-to-lazy-load.jpg" alt="Alternative text to describe image.">

請注意以下幾點:

  • 您將懶惰的類添加到元素
  • 的值src是一個占位符圖像
  • 您要延遲加載的圖像的路徑在data-src屬性內部

Yall的好處包括:

  • Intersection Observer API的出色性能
  • 出色的瀏覽器支持(可回溯到IE11)
  • 無需其他依賴項

要了解有關Yall可以提供的內容以及更復雜的實現的更多信息,請隨時查看GitHub上項目頁面。

結論

這樣就可以了-延遲加載圖像的五種方法,您可以開始在項目中進行試驗和測試。

濟南網站建設成功案例更多
底部線條

7x24小時服務熱線:15069066861   網站建設博客

主站蜘蛛池模板: [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 步进电机_agv电机_伺服马达-伺服轮毂电机-和利时电机 | 微型实验室真空泵-无油干式真空泵-微型涡旋耐腐蚀压缩机-思科涡旋科技(杭州)有限公司 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 洁净棚-洁净工作棚-无菌室-净化工程公司_北京卫护科技有限公司 | 无痕胶_可移胶_无痕双面胶带_可移无痕胶厂家-东莞凯峰 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 华中线缆有限公司-电缆厂|电缆厂家|电线电缆厂家 | 太阳能发电系统-太阳能逆变器,控制器-河北沐天太阳能科技首页 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 菲希尔FISCHER测厚仪-铁素体检测仪-上海吉馨实业发展有限公司 | 工业制氮机_psa制氮机厂家-宏骁智能装备科技江苏有限公司 | IP检测-检测您的IP质量 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 山东彩钢板房,山东彩钢活动房,临沂彩钢房-临沂市贵通钢结构工程有限公司 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 中医治疗皮肤病_潍坊银康医院「山东」重症皮肤病救治平台 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 圆周直径尺-小孔内视镜-纤维研磨刷-东莞市高腾达精密工具 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 联系我们-腾龙公司上分客服微信19116098882 | 定制液氮罐_小型气相液氮罐_自增压液氮罐_班德液氮罐厂家 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 |