周天记 我在人间混日子

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('暂无评论数据'); ?>"
>

评论

😃

全部评论 52

  1. 大峰
    大峰 Lv1
    这个是高级货。应该收藏。我的图片都是压缩小了再上传。。
    江苏省无锡市电信 · Windows 10 / Firefox
    1. 满心
      满心 博主
      @大峰 我的图片比较少,就没压缩,一般不超过200KB
      湖北省武汉市硚口区/洪山区电信 · Windows 10 / Google Chrome
    2. 森木志
      森木志 Lv1
      @大峰 你可以尝试上传处理成webp,就不用这么繁琐了
      美国内华达州拉斯维加斯Versaweb有限责任公司 · Windows 10 / Google Chrome
  2. ymz316
    ymz316 Lv2
    有这种成品还是需要果断收藏的
    湖南省娄底市电信 · GNU/Linux / Firefox
    1. 满心
      满心 博主
      @ymz316 以后肯定用得上的
      湖北省武汉市硚口区/洪山区电信 · Windows 10 / Google Chrome
  3. 全局变量
    懒加载我用你的办法实现了。 这里代码中忘记写data-src了
    湖南省张家界市移动 · Windows 10 / Google Chrome
    1. 满心
      满心 博主
      @全局变量 可以可以,回头我补上
      湖北省武汉市电信 · Android 15 / 手机微信