在主题早期开发阶段,由于当时浏览器对图片延迟加载等功能的支持较为有限,咱们的WordPress主题采用的是 JavaScript LazyLoad 的方式实现图片延迟加载,并在此基础上实现 WebP 图片兼容检测与加载

随着近几年浏览器能力的持续提升,主流浏览器已经普遍原生支持图片延迟加载。因此,在近期的JustNews主题Module主题最新版更新中我们对图片加载机制进行了优化升级(其他主题后续更新陆续支持),在保留旧方案兼容性的同时,新增支持 浏览器原生实现方案,切换方式:主题设置-优化加速-图片延迟加载

主题图片延迟加载与 WebP 加载机制升级说明

一、图片延迟加载机制升级

旧版本主题使用 JS LazyLoad 实现图片延迟加载,其原理是通过 JavaScript 监听页面滚动,当图片进入可视区域时再替换为真实图片地址进行加载。

新版本则支持使用浏览器原生能力,在图片标签中加入以下属性:

  • loading="lazy"
  • decoding="async"

其中:

  • loading="lazy":由浏览器自动控制图片延迟加载
  • decoding="async":允许浏览器异步解码图片,减少页面渲染阻塞,这也符合 Google PageSpeed 等性能优化工具建议的减少渲染阻塞资源的优化方向。

相比 JS 实现,浏览器原生实现方案具有以下优势:

  • 减少前端 JavaScript 依赖
  • 降低页面脚本执行开销
  • 提升页面渲染性能
  • 利用浏览器自身优化策略
  • 更符合 Google PageSpeed / Lighthouse 的性能优化建议
  • 不再需要为搜索引擎额外输出 noscript 图片代码,页面结构更加简洁

二、WebP 图片加载机制调整

旧版本主题中的 WebP 功能依赖 JS LazyLoad 实现:

  1. 图片准备加载时
  2. JS 判断浏览器是否支持 WebP
  3. 如果支持,则自动在 lazyload 图片替换环节使用 webp 格式图片地址

在启用 浏览器原生实现 的情况下,新版本将 WebP 判断逻辑调整为:

  • 默认认为浏览器具备现代图片格式支持能力
  • 在服务器端直接将图片地址替换为 WebP 格式
  • 浏览器直接加载 WebP 图片

这种方式减少了前端判断逻辑,使图片加载流程更加简单高效。

三、两种模式可选

同时为了保证使用旧版本主题网站的兼容性,本次更新保留了原有 JS 实现方式,并提供两种模式可选。

后台路径:主题设置-优化加速-图片延迟加载,可选择浏览器原生实现或者JS实现,需要注意:浏览器原生延迟加载目前不支持设置 LazyLoad 替代图功能,如果需要使用占位图效果,请继续使用 JS 方式。

考虑到当前主流浏览器已全面支持原生图片延迟加载,还是建议大家在更新主题后 切换至浏览器原生实现方案,以获得更好的性能表现和更简洁的页面结构。

JS实现方案将作为 过渡兼容方案继续保留,以满足部分需要占位图或特殊兼容需求的网站使用,不过后续可能随时会有下线的可能。