主页 / 前端 / wordpress实现懒加载Lazyload的代码

wordpress实现懒加载Lazyload的代码

2023.08.04 02:44 204 0
最后更新于:2023.08.17 03:08 如已失效请留言

网站加载速度一直是非常重要的话题。通过实际测试发现,提高网站加载速度能在短时间内显著提升页面访问量,尤其对大型网站而言,性能优化所带来的效益非常明显。

在对网站进行性能优化时,除了避免不必要的功能和代码外,实现图片和视频的懒加载也是非常有效的方式之一。

WordPress 平台有许多插件可以实现懒加载,但有时会因为加载第三方文件而反而降低页面加载速度。那么,有没有办法仅通过代码来实现懒加载效果呢?

原理剖析

懒加载的基本原理是通过 JavaScript 来控制页面上的图片加载时机。当图片还未进入浏览器可见区域时,不加载图片资源;当图片滚动进入可见区域后,才通过 JS 加载图片。这种方式可以避免加载不可见区域的图片,自然可以提高页面的加载速度。

具体实现

我们先看一下 img 标签默认的图片加载方式:

<img src="https://xsgc.cc/image.jpg" alt="wordpress 实现懒加载 Lazyload 的代码">

img 标签的 src 属性指定图片的地址,浏览器根据该地址加载图片。

为实现懒加载,我们可以在图片进入可见区域后再设置 src 属性,让浏览器只加载可见图片:

  • 在图片未进入可见区域时,不加载图片,使用一个小的占位图:

<img src="https://example.com/placeholder.png" alt="wordpress 实现懒加载 Lazyload 的代码">

这里的 placeholder.png 是 1 像素的小图,所有的 img 标签共用该文件,以减少下载量。又由于占位图很小,需要设置 img 的宽高:

<img src="https://xsgc.cc/placeholder.png" alt="wordpress 实现懒加载 Lazyload 的代码" width="372" height="162">
  • 当图片进入可见区域时,设置 src 加载真实图片。但浏览器并不知道该加载哪张图片,所以我们提前将图片地址存储在 data-src 属性中:
<img data-src="https://xsgc.cc/image.jpg" alt="wordpress 实现懒加载 Lazyload 的代码" src="https://example.com/placeholder.png" alt="wordpress 实现懒加载 Lazyload 的代码" width="372" height="162">

同时添加 class 属性,方便 JavaScript 获取 dom 并替换 src:

<img class="lazyload" data-src="https://xsgc.cc/image.jpg" alt="wordpress 实现懒加载 Lazyload 的代码" src="https://xsgc.cc/placeholder.png" alt="wordpress 实现懒加载 Lazyload 的代码" width="372" height="162">
  • 图片端改造完成后,在 WordPress 主题 functions.php 中添加如下代码,即可实现全站懒加载:
function lazyload() { 
?>

<script>
const imgs = document.querySelectorAll('img.lazyload');

const observer = new IntersectionObserver(entries => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      let imgSrc = entry.target.dataset.src;
      entry.target.src = imgSrc;
      observer.unobserve(entry.target);
    }
  }); 
});

imgs.forEach(img => {
  observer.observe(img); 
});
</script>

<?php
}

add_action('wp_footer', 'lazyload');

通过以上简单的代码实现,就可以轻松为 WordPress 网站添加图片懒加载功能,从而提高页面加载速度。

下载地址

评论(0)

下载地址

赞赏

微信赞赏码
支付宝赞赏码

最新评论

  • andres  2024-10-20 09:13:00 牛啊! [原创工具] 抖音视频解析盒子V1.3 2023.10.7-来源吾
  • aa  2024-03-21 20:38:07 感性分享 Ardfry四大系列缩略图插件PSD、AI、INDD、CR2、NEF
  • Miracle  2023-12-13 10:31:20 谢谢分享 Photoshop和Illustrator的参考辅助线插件GuideGuide
  • 马总  2023-12-07 16:24:49 正需要,感谢 Ardfry四大系列缩略图插件PSD、AI、INDD、CR2、NEF
  • 11  2023-11-29 20:45:35 感谢 Photoshop和Illustrator的参考辅助线插件GuideGuide