Skip to content

图片加载优化方案

懒加载

图片上直接添加属性:lazy

图片压缩

推荐网站:谷歌的开源图片压缩网站https://squoosh.app/

将图片进行压缩:

  • 一种是降低图片质量,但是肉眼分辨不出来
  • 一种是改变图片格式,webp 格式的图片现在除了ie浏览器外,现在都支持了

一般这两种可以结合使用

图片预加载

这种原理是:在页面加载时,将图片提前加载到浏览器的缓存中,利用浏览器的缓存策略,这样当用户访问图片时,图片就会从缓存中加载,从而避免了图片的加载时间。

实测 lighthouse 测试性能时,会禁止缓存,禁止缓存后会加载两次图片。如果图片是当前页面的最大的图片的话,会导致LCP时间延长。

渐进式加载

一种是导出渐进式图片,加载的时候图片会逐渐由模糊变清晰。可能就是兼容新不太好。

另一种推荐的方案是:站位图片(或者低质量图片)+ 原图片

先加载一个大小比较小的图片,然后通过接口或者,new Image() 加载原图片当图图片加载完,也就是onload 的时候,将原图片替换掉站位图片。

如果想要lighthouse的数据好看一点,可以在原图加载完成后转成base64格式的图片,直接替换掉占位图片,而不是这样就不会在禁止缓存的情况下加载两次图片。

可以优化的交互,就是图片切换的时候加一些动画,比如淡入淡出,或者使用css3的transition

Released under the ISC License.