vue 图片加载太慢怎么办_前端性能优化之图片懒加载(附vue自定义指令)

本文介绍了在Vue项目中解决图片加载慢的问题,详细阐述了图片懒加载的必要性、原理,并提供了使用IntersectionObserver API和自定义Vue指令实现懒加载的方法,以提升页面性能和用户体验。
摘要由CSDN通过智能技术生成

a6e41f0940e0d34957b73a14a7c827f5.gif

作者:lzg9527

链接:https://juejin.cn/post/6903774214780616718

在类电商类项目,往往存在大量的图片,如 banner 广告图,菜单导航图,美团等商家列表头图等。图片众多以及图片体积过大往往会影响页面加载速度,造成不良的用户体验,所以进行图片懒加载优化势在必行。

为什么要进行图片懒加载

我们先来看一下页面启动时加载的图片信息。

06e5d140055a81102cf1e7190ff0d1c9.png

如图所示,这个页面启动时加载了几十张图片(甚至更多),而这些图片请求几乎是并发的,在 Chrome 浏览器,最多支持的并发请求次数是有限的,其他的请求会推入到队列中等待或者停滞不前,直到上轮请求完成后新的请求才会发出。所以相当一部分图片资源请求是需要排队等待时间的。

在上面可以看出,有部分图片达到几百 kB,甚至 2M(这锅必须运营背,非得上传高清大图不可?),直接导致了加载时间过长。

c8a0506910f53868615f2e5f6a3f1589.png

针对以上情况,进行图片懒加载有以下优点:

  • 减少资源的加载,页面启动只加载首屏的图片,这样能明显减少了服务器的压力和流量,也能够减小浏览器的负担。
  • 防止并发加载的资源过多而阻塞 js 的加载,影响整个网站的启动。
  • 能提升用户的体验,不妨设想下,用户打开页面的时候,如果页面上所有的图片都需要加载,由于图片数目较大,等待时间很长这就严重影响用户体验。

图片懒加载的原理

图片懒加载的原理主要是判断当前图片是否到了可视区域这一核心逻辑实现的

  • 拿到所有的图片 dome 。
  • 遍历每个图片判断当前图片是否到了可视区范围内。
  • 如果到了就设置图片的 src 属性。
  • 绑定 window 的 scroll 事件,对其进行事件监听。

我们先来看下页面结构

"en">
  
    "UTF-8" />
    Lazyload
    
  
  
    "./img/default.png" src="./img/1.jpg" />
    "./img/default.png" src="./img/2.jpg" />
    "./img/default.png" src="./img/3.jpg" />
    "./img/default.png" src="./img/4.jpg" />
    "./img/default.png" src="./img/5.jpg" />
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值