前端必备:优化大体积图片加载的几种方案

问题:有的时候,我们会在网页上渲染大体积图片,但是图片总会线性地一点点出来,用户体验不太好

就像这样

在这里插入图片描述

为了解决这个问题,我整理了几种优化方案

  • 通过link标签preload预加载
  • 图片拆分
  • 图片onload前用其他样式代替
  • 背景颜色
  • 压缩图片后转base64

1.首先看第一种preload方式

<link rel="preload" href="./img/all.jpg" as="image" />

添加上后,浏览器会在渲染前先加载完图片,这样图片在显示时会整张地显示

在这里插入图片描述
而且这种方式在各端支持度也还可以,然后看下第二种方式

2.图片拆分

现在大图片是5MB,我拆成了9个400多KB的小图片,现在看下效果
在这里插入图片描述
可以看到,体验上稍微有了些改善,但这里我其实偷了个懒,要是拆地更细,体验会更好

3.图片onload前用其他样式代替

img在渲染完成后会触发onload事件,那么我们可以先设置图片为隐藏,放一个图片或者loading进行过渡,然后在图片触发onload事件之后,进行切换
另外有些cdn也可以通过query参数获得模糊的图片,这样我们就可以实现模糊到清晰的渐进加载

4.背景颜色

给图片的包裹元素提前设置一个与这个图片整体色调相符的背景颜色
在这里插入图片描述

5.转base64

在这里插入图片描述
图片会整张显示出来,但不建议转大图片,否则你的代码会很长很长

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值