小云菜
小云菜
  • 发布:2016-02-24 23:18
  • 更新:2021-01-11 09:47
  • 阅读:8466

基于plus.downloader的图片懒加载功能,支持本地缓存

分类:MUI

基于plus.downloader的图片懒加载功能,支持本地缓存

如果有样式问题的话,请移步至http://www.cnblogs.com/phillyx/p/4649128.html

简单说一下

在app中,对一些变动不频繁的图片数据(如个人头像等),是需要存储在本地的。我相信这对大多数的app都是强需求的。  

怎么使用呢

img标签默认都有data-src属性,用来存放网络链接,src属性初始是最好给一个默认本地图片链接,下载好会自动替换掉

<img data-src="远程链接" src="默认图片">
  1. 如果在列表中,通过下拉刷新、上拉刷新加载数据,加载下一页的时候可以如下做:
    一次新增多条数据时,为避免重复渲染页面及重新下载正在下载中的图片等问题,新增的img要设置data-pageno属性,如下使用arttemplate写的模板

    <script id="tmpl" type="text/html">  
    {{each items as item i}}  
            <li class="mui-table-view-cell" data-id='{{item.id}}'>  
              <img data-src="{{item.url}}" data-pageno="{{item.pageno}}" src="img/default.png">  
            </li>  
    {{/each}}  
    </script>

    在js中怎么用呢

    var html = template('tmpl', data);  
    document.querySelector("#pullrefresh").innerHTML  = html;  
    lazyImg.pageno=data.pageno;  
    lazyImg.lazyLoad();
  2. 如果不需要分页或者零散的数据,直接添加lazy类就可以了

    <img data-src="远程链接" src="默认图片" class="lazy">

    然后直接调用lazyImg.lazyLoad()就可以了

注意

lazyimg.js是结合cache.js一齐使用的,代码都已提交至github
地址在https://github.com/phillyx/MUIDemos/tree/master/js/lazyimg.js
也可直接使用合并后的代码https://github.com/phillyx/MUIDemos/tree/master/dist/common.js

8 关注 分享
DCloud_heavensoft amourz 不知道 ztingjian wclssdn Element jwenlee 1***@qq.com

要回复文章请先登录注册

小云菜

小云菜 (作者)

回复 疯狂狐狸 :
是这样的,图片的网络路径 - hascode()-->本地路径。
2016-07-26 16:45
疯狂狐狸

疯狂狐狸

回复 小云菜 :
那么图片还是用惟一值来判断是非已经本地缓存吗?
2016-07-26 10:07
小云菜

小云菜 (作者)

回复 疯狂狐狸 :
1.页码的作用是用来做懒加载的。
2.图片的唯一值使用了类md5的简单生成方式,要使用md5的话还是要引入md5.js文件的。
2016-07-26 09:45
疯狂狐狸

疯狂狐狸

页码是会因为数据增加而改变的
为什么不用地址的md5作为图片等唯一值来判断是否已本地缓存呢?
2016-07-25 18:50
kewen

kewen

发现个bug,碰到一个文件不存在的时候, 后面的都下载不了...
2016-06-24 14:52
hum

hum

感谢,非常好用。谢谢!!!!
2016-06-07 12:32
蝮蛇

蝮蛇

厉害
2016-04-04 17:30
Naraku

Naraku

感谢分享。很多实用的函数。
2016-03-21 21:13
豆花饭

豆花饭

感谢分享,收藏了
2016-03-10 04:20
B5教程网

B5教程网

你咋这么牛呢
2016-02-25 10:29