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

【交流分享】图片本地缓存案例,控制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 :
明白了,我本来想的是,如果本地没有文件的话,图片src就设置上线上地址。我的逻辑有点混乱了,现在明白了
2015-09-24 10:25
wenju

wenju (作者)

回复 木乃森 :
检查本地是否存在 读的是本地文件 和网络无关系呢; 如果正在下载图,断网了,我设置的downloader会重试2次,超时10秒
2015-09-24 09:56
木乃森

木乃森

有个问题,如果在断网状态,图片的onerror事件会不会重复执行。
2015-09-24 09:50
木乃森

木乃森

多谢分享,借鉴了很多地方!
2015-09-24 09:41
wenju

wenju (作者)

代码已更新 下载的请更新一下
2015-09-21 09:21
wenju

wenju (作者)

@水御双氛 谢谢提醒 我的错 应该是download.abort(); 下载失败取消任务 删除本地文件
2015-09-21 09:09
水御双氛

水御双氛

dtask.abort();这一句中dtask代表什么,单看源码貌似是undefined?
2015-09-21 07:25
倾听

倾听

很不错的东东,学习了
2015-09-19 15:51
stock2

stock2

谢谢分享
2015-09-19 09:30
炸鸡排超人

炸鸡排超人

谢@.迟点来看
2015-09-18 17:08