美文网首页
hexo图片懒加载方案

hexo图片懒加载方案

作者: Arestory | 来源:发表于2017-02-08 16:27 被阅读430次

自从基于hexo搭建了自己的博客,发现加载网页一直都很慢,其根本是因为图片过多,网页要等所有图片下载完毕才能完全渲染出来,如果可以先加载文字,图片能够延迟加载并且呈现loading中的效果就最好不过了,搜索了网上的资料,大多采用了网上使用范围较广的LazyLoad解决方案,但是很多都模糊不清,并没有指导别人很好解决问题。在自己的多次尝试后,发现以下的方法最有效。

思路

在hexo中编写博客,一般以markdown或html的img标签来添加图片 ,只要在渲染之前将所有img标签替换成适合LazyLoad的格式就可以了

第一步

在你使用的主题文件夹找到 layout > _partial > footer.ejs 文件(或者 head.ejs也可以),在后面加入以下代码


//引用了jquery百度的 cdn 源,也可替换其他的
 <script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
 //也可替换其他的lazyload源
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery-lazyload/1.9.5/jquery.lazyload.min.js"></script>
    <script type="text/javascript">
      $(function() {  
      //对所有 img 标签进行懒加载        
          $("img").lazyload({
          //设置占位图,我这里选用了一个 loading 的加载动画
            placeholder:"/img/loading.gif",
            //加载效果
              effect:"fadeIn"
            });
          });
    </script>

第二步

在主题文件夹下的scripts文件夹里,增加一个 js 文件,命名随意,我这里命名 lazyload-core.js,里面内容如下

'use strict';
var cheerio = require('cheerio'); 
  
function lazyloadImg(source) {
    var LZ= cheerio.load(source, {
        decodeEntities: false
    });
    //遍历所有 img 标签,添加data-original属性
    LZ('img').each(function(index, element) {
        var oldsrc = LZ(element).attr('src');
        if (oldsrc) {
            LZ(element).removeAttr('src');
            LZ(element).attr({
                
                 'data-original': oldsrc
            });
            
        }
    });
    return LZ.html();
}
//在渲染之前,更改 img 标签
hexo.extend.filter.register('after_render:html', lazyloadImg);

相关文章

  • hexo图片懒加载方案

    自从基于hexo搭建了自己的博客,发现加载网页一直都很慢,其根本是因为图片过多,网页要等所有图片下载完毕才能完全渲...

  • Hexo 图片懒加载方案

    如果博客文章中配置了很多图片后,页面加载速度会明显变慢,下面的图片懒加载方案就是解决这个问题的。 在站点根目录的配...

  • 简单的图片懒加载方案

    echo.js图片懒加载方案 一款超级轻量级的图片懒加载工具库,代码不多,完全可以集成到项目中。 所需引入的文件 ...

  • 无限滚动的优化方案(二):懒加载实现

    之前对预加载的实现方案做了介绍,这一篇文章主要是我对图片的懒加载的实现的一个总结。主要包括: 视区检测 图片懒加载...

  • 项目优化

    图片懒加载,数据懒加载, 路由懒加载 1.图片懒加载原理 1.1 开始时 不设置src属性 1.2 图片在可视区域...

  • 笔记 - 图片的加载 & 懒加载

    实现图片的加载 图片的懒加载 实现方案:在img标签内自定义一个属性data-src,用于暂存图片地址获取屏幕可视...

  • Hexo-lazyload-image图片懒加载

    原文转自: https://troyyang.com/2017/08/06/hexo-lazyload-image...

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • 图片懒加载

    懒加载与预加载的基本概念。 懒加载也叫延迟加载:JS图片延迟加载 延迟加载图片或符合某些条件时才加载某些图片。 预...

  • 图片懒加载

    图片懒加载 图片懒加载在一些图片密集型的网站中运用比较多,通过图片懒加载可以让一些不可视的图片不去加载,避免一次性...

网友评论

      本文标题:hexo图片懒加载方案

      本文链接:https://www.haomeiwen.com/subject/hxxbittx.html