Vue+mui实现图片的本地缓存示例代码


Posted in Javascript onMay 24, 2018

下面一段代码给大家分享基于Vue+mui实现图片的本地缓存,具体代码如下所示:

const menu = {
 state: {
  products: {},
  GLOBAL_CONFIG:GLOBAL_CONFIG['GLOBAL_CONFIG']
 },
 mutations: {
  get_product: function (state, products) {
    //商品列表
    state.products = products;
    for(let i = 0; i < state.products.length; i++){
      if(state.products[i]['image'] != null){
        // state.products[i]['image'] = state.GLOBAL_CONFIG['base64Header'] + state.products[i]['image'];
        //下载图片到本地
        this.commit('imgCache',state.products[i]);
      }else{
        //添加默认图片
        state.products[i]['image'] = require("../assets/file.png");
      }
    }
  },
  imgCache: function (state,imgObj) {
    mui.plusReady(function(){
      // 1. 转换网络图片地址为本地缓存图片路径,判断该图片是否存在本地缓存
      // http://...jpg -> md5
      // 缓存目录 _downloads/image/(md5).jpg
      let image_url      = imgObj.image;
      let image_md5      = md5(image_url);
      // 缓存本地图片url
      let local_image_url   = '_downloads/image/'+image_md5+'.jpg';
      // 平台绝对路径
      let absolute_image_path = plus.io.convertLocalFileSystemURL(local_image_url);
      console.log(absolute_image_path);
      // 判断本地是否存在该文件,存在就就直接使用,否则就下载
      plus.io.resolveLocalFileSystemURL( absolute_image_path, function( entry ) {
        if(entry){
          imgObj.image = plus.io.convertLocalFileSystemURL(local_image_url);
        }else{
          download_img();
        }
      }, function ( e ) {
        console.log("Resolve file URL failed: ");
        download_img();
      } );
      function download_img(){
        // filename:下载任务在本地保存的文件路径
        let download_task = plus.downloader.createDownload(image_url, {
          filename: local_image_url
        }, function(download, status) {
          // 下载失败,删除本地临时文件
          if(status != 200){
            console.log('下载失败,status'+status);
            if(local_image_url != null){
              plus.io.resolveLocalFileSystemURL(local_image_url, function(entry) {
                entry.remove(function(entry) {
                  console.log("临时文件删除成功" + local_image_url);
                  // 重新下载图片
                  download_img();
                }, function(e) {
                  console.log("临时文件删除失败" + local_image_url);
                });
              });
            }
          }else{
            // 把下载成功的图片显示
            // 将本地URL路径转换成平台绝对路径
            console.log("下载成功" + local_image_url);
            imgObj.image = plus.io.convertLocalFileSystemURL(local_image_url);
          }
        });
        download_task.start();
      }    
    });
  }
 },
 actions: {
 }
}

总结

以上所述是小编给大家介绍的Vue+mui实现图片的本地缓存示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
Jan 29 Javascript
javascript实现画不相交的圆
Apr 07 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
JavaScript 模块的循环加载实现方法
Dec 13 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
Nov 28 Javascript
React-intl 实现多语言的示例代码
Nov 03 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
May 30 Javascript
微信小程序实现九宫格抽奖
Apr 15 Javascript
js array数组对象操作方法汇总
Mar 18 Javascript
一个手写的vue放大镜效果
Aug 09 Javascript
vue 在单页面应用里使用二级套嵌路由
Dec 19 Vue.js
vue组件name的作用小结
May 23 #Javascript
linux 后台运行node服务指令方法
May 23 #Javascript
node.js部署之启动后台运行forever的方法
May 23 #Javascript
jquery引入外部CDN 加载失败则引入本地jq库
May 23 #jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 #jQuery
让Vue也可以使用Redux的方法
May 23 #Javascript
微信小程序排坑指南详解
May 23 #Javascript
You might like
php获取post中的json数据的实现方法
2011/06/08 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
PHP实现根据密码长度显示安全条
2017/07/04 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
PHP PDO操作总结
2014/11/17 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
Python算法之图的遍历
2017/11/16 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
使用django实现一个代码发布系统
2019/07/18 Python
python 命名规范知识点汇总
2020/02/14 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
客服部工作职责范本
2014/02/14 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle