wenju
wenju
  • 发布:2015-09-18 14:54
  • 更新:2023-09-10 09:22
  • 阅读:20118

【交流分享】图片本地缓存案例,控制downloader数量,避免手机发烫

分类:HTML5+

之前有写过<<h5+的Downloader下载网络图片缓存到本地的案例>> http://ask.dcloud.net.cn/article/256
但后来才发现图片比较多时,downloader创建过多,手机立马发烫;
后来解决了也没有更新;
今天项目刚发出去,稳定下来;现在重新整理了一个案例分享给大家;

主要优化和解决的问题:
1.图片显示,先检查本地是否存在,如果存在则使用本地;如果不存在则联网下载,保存在本地
2.使用背景控制图片样式;比src灵活;
3.不同的场景,使用不同的图片下载默认图;(我项目中头像和产品的下载默认图是不一样的)
4.单个downloader下载,避免网速快或图片多创建过多downloader,导致手机发烫的问题
5.避免任务队列中,图片已存在,downloader下载卡顿的问题

  1. 加入下载完成的渐变动画,
  2. 其他,,自己发现..

使用方法很简单:两步!!!
1.导入imgload.css imgload.js md5.min.js 还有一张透明图translate.png
2.联网获取数据后,拼接的img格式为:<img sr c='默认图片' data-sr c='网络地址' onload='load(this)'/>

好了,具体看附件的案例

37 关注 分享
BoredApe DCloud_heavensoft 不知道 蔡繁荣 Nation lafer hilongjw hyz 针眼画师 后海 立扬 訫 luxxxxxxx 老贪嗔痴 holy1004 小易xiaoyi 5***@qq.com CFee 我就是那个男孩 6***@qq.com HSQ2025 好冷 MooGu 8***@163.com freedemon 7***@qq.com 韩德宇 a***@gmail.com 8***@qq.com k***@126.com l***@outlook.com 1***@qq.com lhyh 星羽 1***@qq.com 6***@qq.com [已删除]

要回复文章请先登录注册

wenju

wenju (作者)

不好意思 各位最近忙着赶项目 暂时没法回答各位的问题 @villayong @purple 如有解决的 可分享给大家
2015-10-14 10:47
purple

purple

现在是保存到了/storage/emulated/0/Android/data/io.dcloud.HBuilder/.HBuilder/downloads/image/路径下, 通过手机的文件管理找不到这个目录, 如何变更目录?
2015-10-13 13:55
炸鸡排超人

炸鸡排超人

我用的是angular的,想着写一个ng-cache-src指令,加个storage应当也是够用了
downloader模块我本身写好线程数了= =问题不大
你说的默认图是没图的时候展示么, 那我写个attr(default-src)在element上也是可行的
还有什么问题呢,不知道了= =先去写写
2015-10-09 13:24
villayong

villayong

回复 wenju :
嗯,是没有问题,是我的png图片跟我的样式有冲突

还有个问题,想增加一个清除缓存的算法,但现在不知道如何计算sd卡的剩余空间大小,以及已经下载的所有图片总空间,看了下h5的接口,好像没有计算一个文件夹的大小,只有计算某个文件的大小,请问知道如何获取吗?
2015-10-09 10:13
wenju

wenju (作者)

回复 villayong :
亲 这个和图片格式没有关系的哦 我刚刚测试了 Android上无此问题哈 ; 如果确实您这边有问题 可以发个png网络地址给大家试试
2015-10-09 10:04
villayong

villayong

多谢分享!!
有个问题,如果是Android平台,png格式的图片无法显示,ios平台无此问题,希望改进!
2015-10-08 16:49
wenju

wenju (作者)

回复 水御双氛 :
此问题官方已经解决的了 你升级下最新版本hb和mui.js mui.css
2015-09-29 14:14
wenju

wenju (作者)

回复 水御双氛 :
http://ask.dcloud.net.cn/question/10547
2015-09-29 14:10
水御双氛

水御双氛

ios可以,米4的情况,plus报Uncaught SyntaxError: Unexpected token } 查出来是plus.downloader.createDownload这一句代码有问题
2015-09-29 09:45
wenju

wenju (作者)

回复 木乃森 :
能帮到你就太好了 O(∩_∩)O~
2015-09-24 10:28