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

【交流分享】图片本地缓存案例,控制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 (作者)

回复 gaus :
mui image preview用过一次 因为在安卓机 比如小米和三星系列的 有问题 就摒弃了 ; 冲突的话 确实没有特别的研究; 现在的图片轮播预览是自己写的
2016-01-08 09:21
gaus

gaus

@wenju

一个小问题,如果同时引入mui image preview,则图像第1次无法正确显示,第2次再进入则完全正常,似乎第1次load未完成就显示了部分图片。不知这二者是否有冲突?
2016-01-08 09:02
mingwei

mingwei

挺好的呀,正需要呢 试试
感觉没问题
2015-12-24 21:12
苏禾然

苏禾然

赞赞赞
2015-12-09 19:56
TTang

TTang

回复 wenju :
我已经找到问题所在了,因为我在导包的时候导入的是最新版本的两个jar包,然而我之前用的今年2月份发布的版本,缺少了一个基础包,然而我把缺的那个基础包导进去的时候就报包冲突的错误,我只能找回我最原始版本那些SDK中的那两个jar包放进去就没有问题了,这只能怪mui新版不兼容旧版本
2015-12-09 14:34
TTang

TTang

not found file feature plugin ; action=convertLocalFileSystemURL;请检查assets/data/properties.xml文件是否添加file相关节点。或者not found downloader feature plugin ; action=createDownload;请检查assets/data/properties.xml文件是否添加downloader相关节点。一直报这两个错,但是我明明在properties已经存在的了。你写的都有
2015-12-08 10:17
wenju

wenju (作者)

回复 TTang :
你这是集成Android原生吧 确定是报节点错误吗? 如果是的话 downloader有两个节点的
features中的一个
<feature
name="Downloader"
value="io.dcloud.net.DownloaderFeatureImpl" >
</feature>
services中一个
<services>

<service
name="Downloader"
value="io.dcloud.net.DownloaderBootImpl" />
</services>
2015-12-08 09:29
TTang

TTang

downloader.jar file.jar 这两个导入后一直说找不到节点,我都已经配置好properties了
2015-12-07 17:28
wenju

wenju (作者)

回复 Aooooooy :
这个不适合img预先写在body 因为此时plus还未初始化 请在js中调用onload
2015-11-13 09:22
Aooooooy

Aooooooy

写好的<img>调用load就会显示plus的错误 Uncaught ReferenceError: load is not defined
2015-11-12 10:51