什么是图片懒加载 图片懒加载是一直网页性能优化的方式,随着屏幕分辨率的飞速提升,人们对电脑上的视觉效果要求日益高涨。图片作为常见的网页内容,人们对它所呈现的效果需求
什么是图片懒加载图片懒加载是一直网页性能优化的方式,随着屏幕分辨率的飞速提升,人们对电脑上的视觉效果要求日益高涨。图片作为常见的网页内容,人们对它所呈现的效果需求自然水涨船高。越高分辨的图片意味着内存占用越大,一张图片以 M 为单位已经是屡见不鲜。 我们常用的淘宝首页,里面的商品图片不但内存占用大,而且数量非常多,如果一次性全部加载出来,对网速的要求高,而且对浏览器的性能开销非常巨大。如果这时候不做一些性能优化,那么浏览器很有可能因为加载图片而变得卡顿,非常影响用户体验。 常见的图片性能优化就是图片懒加载:根据用户的交互行为触发图片加载。 新时代图片懒加载方案现在已经买入2021年了,这时候不提浏览器自动实现的懒加载方案无疑是落伍的。这种方式非常简单,只需要给 img 添加loading属性即可 //告诉浏览器懒加载图片 //告诉浏览器懒加载还是立即加载你自己选 //告诉浏览器立即加载 这种方案最初是 chrome 实现的,为了方便开发者,提升浏览器的性能,谷歌公司在chrome浏览器内部实现根据图片尺寸、大小、用户交互行为等要素自动触发优化图片加载机制。目前很多浏览器已经采用这种方案,相信以后会成为流行。 截止目前为止的兼容性报告 我们有必要了解一下浏览器使用 loading 属性实现懒加载的触发机制。 根据大神张鑫旭这篇博客浏览器IMG图片原生懒加载loading=”lazy”实践指南,有兴趣直接点进去看测试过程,这里只放测试结论:
JavaScript 实现图片懒加载跟原生浏览器支持,这里的图片懒加载是当页面的图片进入到用户的可视范围之内再加载图片,逻辑是开发者构思想到的。 构思过程如下: 1.img 标签不放 src 属性,而是放诸如data-src这样的自定义属性,把图片路径放在这个属性下。 2.当图片进入可视区域时,把 data-src 的图片路径拿出来放置到 src 属性上。 3.浏览器识别到 img 属性的 src 属性,触发重渲染,显示出图片。 需要解决的问题 可视区域的高度X:使用window.innerHeight属性获取 元素距离可视区域的top 高度:使用element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置,所以可以直接取。 接下来放代码:
效果 |
2021-06-04
2019-01-10
2019-02-17
2021-09-12
2021-09-30