Typecho实现全站图片懒加载

对于博客网站来说,图片加载慢是导致网站迟迟加载不完的罪魁祸首,本站实现了所有图片懒加载,这里分享下本站是如何实现的,整体过程也比较简单。本站教程基于Typecho,其它博客程序请自行研究,不过区别并不大。

我这里使用的 lazysizes.min.js 来实现懒加载。有必要简单介绍下LazySizes

LazySizes简介

LazySizes是一款终极而轻量级的懒加载库,专门用于处理响应式图片、iframe以及脚本等资源的延迟加载。其核心特性包括:

  • 高性能:旨在提供极高的性能表现。
  • 易于集成:只需在你的网页中加入JS文件,并对需懒加载的元素添加lazyload类即可。
  • 自适应图片:全面支持响应式图片标准,如标签和srcset属性。

主要功能亮点

  • 自动优先级资源管理,区别对待关键和临近视口的元素,提高感知性能。
  • 兼容性广泛,适用于各种前端框架和动态页面技术。
  • 支持未来的响应式图片规范,无需额外配置。
  • 提升SEO,不会影响搜索引擎抓取。

引入LazySizes

github下载地址

其它安装方式

npm install lazysizes --save
yarn add lazysizes --save

使用

使用上也比较简单,在需要使用的类上添加 lazyload 即可,比如我这里

<img class="comment-list-empty-img lazyload" 
     src="<?php $this->options->themeUrl('/static/images/null.svg'); ?>"
     data-src="<?php $this->options->themeUrl('/static/images/null.svg'); ?>"
     alt="<?php echo _t('暂无评论数据'); ?>"
>

评论区

😃
提交

全部评论 (57)

  1. 头像
    大峰 Lv3 回复
    这个是高级货。应该收藏。我的图片都是压缩小了再上传。。
    · 江苏 · Windows 10 / Firefox
    1. 头像
      满心 博主 回复
      @大峰 我的图片比较少,就没压缩,一般不超过200KB
      · 湖北 · Windows 10 / Google Chrome
    2. 头像
      森木志 Lv1 回复
      @大峰 你可以尝试上传处理成webp,就不用这么繁琐了
      · 美国 · Windows 10 / Google Chrome
  2. 头像
    ymz316 Lv3 回复
    有这种成品还是需要果断收藏的
    · 湖南 · GNU/Linux / Firefox
    1. 头像
      满心 博主 回复
      @ymz316 以后肯定用得上的
      · 湖北 · Windows 10 / Google Chrome
  3. 头像
    全局变量 Lv4 回复
    懒加载我用你的办法实现了。 这里代码中忘记写data-src了
    · 湖南 · Windows 10 / Google Chrome
    1. 头像
      满心 博主 回复
      @全局变量 可以可以,回头我补上
      · 湖北 · Android 15 / 手机微信
  4. 头像
    klcdm Lv1 回复
    懒加载拯救小水管
    · 广东 · Windows 10 / Microsoft Edge
    1. 头像
      klcdm Lv1 回复
      @klcdm 不过我图片一般是对象储存了其实
      · 广东 · Windows 10 / Microsoft Edge
      1. 头像
        满心 博主 回复
        @klcdm 我也是cos了
        · 湖北 · Android 15 / 手机微信
    2. 头像
      满心 博主 回复
      @klcdm 优化下速度还是明显
      · 湖北 · Android 15 / 手机微信
  5. 头像
    老何 Lv2 回复
    wordpress 好像原生支持图片懒加载
    · 安徽 · Windows 10 / Google Chrome
    1. 头像
      满心 博主 回复
      @老何 不依赖插件或者主题吗
      · 湖北 · Android 15 / 手机微信
      1. 头像
        文案姐笔记 Lv3 回复
        @满心 要插件的 有的 是主题自带的!
        · 江苏 · Windows 10 / Google Chrome
      2. 头像
        风记星辰 Lv1 回复
        @满心 wp 为每个 img 标签加上了 decoding="async"属性,没用任何 js,使用浏览器原生异步解码图像,避免了主线程的阻塞,从而提升页面的整体响应速度。
        · 辽宁 · Windows 11 / Quark浏览器
        1. 头像
          满心 博主 回复
          @风记星辰 了解了,虽然我也用wp,不过很多东西都主题自带的
          · 湖北 · Android 15 / 手机微信
          1. 头像
            前端之猫 Lv1 回复
            @满心 自 2023 年起所有主要浏览器都支持懒加载了,完全不需要 JavaScript。https://caniuse.com/loading-lazy-attr只需在 img 上添加 loading="lazy" 和 decoding="async",后者是异步解码,前者是懒加载图像文件
            · 北京 · OpenHarmony / QQ 浏览器
          2. 头像
            满心 博主 回复
            @前端之猫 那挺好啊,我还没关注勒
            · 湖北 · Android 15 / 手机微信
  6. 头像
    段先森 Lv2 回复
    不错,是个好东西
    · 美国 · Windows 10 / Google Chrome
    1. 头像
      满心 博主 回复
      @段先森 折腾上,挺好的
      · 湖北 · Android 15 / 手机微信
  7. 头像
    LiuShen Lv4 回复
    btf主题好像不是用的这个,但是也差不多哈哈
    · 湖北 · Windows 10 / Google Chrome
    1. 头像
      LiuShen Lv4 回复
      @LiuShen 感觉这个提交评论和放弃评论按钮可以美化一下,不太适合这个风格
      · 湖北 · Windows 10 / Google Chrome
      1. 头像
        满心 博主 回复
        @LiuShen 最多就是把背景色去掉,我还在看,背景色去掉也挺奇怪的
        · 湖北 · Android 15 / 手机微信
    2. 头像
      满心 博主 回复
      @LiuShen 这种方案最简单了
      · 湖北 · Android 15 / 手机微信
      1. 头像
        LiuShen Lv4 回复
        @满心 我感觉可以和本站其他的边框相吻合呀,比如这样:![](https://i.p-i.vip/30/20250607-68443ec66bd56.webp)
        · 湖北 · Windows 10 / Google Chrome
        1. 头像
          满心 博主 回复
          @LiuShen 原来是这样的,准备计划整上
          · 湖北 · Android 15 / 手机微信
  8. 头像
    茗辰原 Lv2 回复
    懒加载很不错的选择,我也用了懒加载!速度一下子就上去了,哈哈!
    · 新疆 · Android 13 / Google Chrome
    1. 头像
      满心 博主 回复
      @茗辰原 那必须呀
      · 湖北 · Android 15 / 手机微信