实现懒加载
原文合集地址如下,有需要的朋友可以关注
什么是懒加载
只在数据或内容即将进入视口或即将需要的时候才加载。 实现懒加载的好处有:
提高页面加载速度和响应速度。只加载当前用户需要或将要浏览到的数据,避免一次性加载大量不必要的数据。
节省用户流量。只加载用户浏览到的数据,避免加载用户未浏览的数据,特别是对于移动端用户来说可以节省流量。
优化用户体验。避免一次性加载大量数据导致页面卡顿,appear 突然出现,样式渲染跳跃等影响用户体验的问题。 实现懒加载的弊端有:
首屏加载会较慢,而一些关键数据又需要首屏加载,需要权衡。
需要监听浏览器事件并判断元素是否进入视口,稍微增加了开发难度。
如果数据较多,需要加载的内容较长,用户体验还是会受到影响。懒加载并非银弹,还需要结合其他优化手段。
不利于 SEO。搜索引擎爬虫抓取不到实际内容,抓取到的可能是 loading 占位图等,影响网页 Indexed 和排名。 所以,懒加载是一种非常 useful 的技术,可以极大提高用户体验和网页性能,但也有一定的弊端,需要权衡选择。一般来说,对于加载的数据较多,页面性能和流量较为关注的场景,懒加载是一个不错的方案。但如果对 SEO 优化要求较高,或者加载的数据较少,也可以不使用懒加载。
实现图片懒加载
页面需要大量展示图片时可以考虑使用懒加载。实现步骤如下:
为图片添加默认的 loading 图片源和真实的 data-src 属性:
获取所有图片元素:
监听页面滚动事件:
定义 loadImages 函数来加载图片:
页面初始化时调用一次 loadImages,防止某些图片已进入视口但未加载:
为避免加载较大图片导致页面卡顿,可以考虑在图片加载完成后设置淡入效果:
列表懒加载
这里提供一个核心代码,根据自己项目加入即可
列表滚动加载
如果是加载列表数据的话,这里提供一个实现滚动加载列表数据的代码
评论