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).jpglet image_url           = imgObj.image;let image_md5           = md5(image_url);// 缓存本地图片urllet 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: {}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

年度回顾 | 2019 年的 Apache Flink

2019 年即将落下帷幕&#xff0c;这一年对于 Apache Flink 来说是非常精彩的一年&#xff0c;里程碑式的一年。随着这一年在邮件列表发送了超过 1 万封邮件&#xff0c;JIRA 中超过 4 千个 tickets&#xff0c;以及 GitHub 上超过 3 千个 PR&#xff0c;Apache Flink 迎来了快速…

VS Code 报错Vetur can‘t find ‘tsconfig.json‘ or ‘jsconfig.json‘的解决方法

文章目录一、原因二、说明三、显式项目四、解决方法&#xff08;3选1&#xff09;4.1. 配置Vetur插件&#xff0c;忽略提示4.2.在项目根目录创建jsconfig.json文件4.3.在项目根目录创建vetur.config.js文件一、原因 Vetur 0.31.0版本新增了一个vetur.config.js的配置文件&…

IDE 插件新版本发布,总有一个功能帮到你——开发部署提速 8 倍

对于开发者而言&#xff0c;提高工作效率大概有 2 种主要方式&#xff0c;第一种方式就是加快自己的工作速度&#xff0c;争取在同一段时间内多码一些代码、多干一些活来实现多产&#xff1b;而聪明的开发者会选择第二种方式&#xff0c;就是通过插件&#xff0c;让一些重复性的…

推特惊爆史诗级漏洞,App 恶意窃取用户隐私,云端安全路向何方?

作者 | 马超来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;近日&#xff0c;全球安全事件频发&#xff0c;先是推特惊爆史诗级漏洞&#xff0c;黑客对推特进行比特币钓鱼骗局&#xff0c;获取了对包括美国前总统奥巴马、钢铁侠埃隆马斯克、和世界首富比尔盖茨推特…

读懂这本书,才算读懂阿里大数据

2019年&#xff0c;是阿里巴巴第11个双11。众所周知&#xff0c;阿里的电商在线体系经过多年发展&#xff0c;可以支持峰值超过每秒50几万笔交易。但鲜有人知的是&#xff0c;海量的交易&#xff0c;创造了海量的数据&#xff0c;爆炸性的数据量激增&#xff0c;给狂欢过后的大…

Vue封装预约日期插件和发布到npm上

插件代码 <template><div class"subscribe-time" v-show"setting.display"><div class"subscribe-content"><div class"subscribe-date" v-if"setting.dateBlock true"><div class"subsc…

VS Code Element 提示 VSCode-Element-Helper 插件

文章目录1. 安装插件2. 效果图1. 安装插件 2. 效果图

9张图总结一下阿里云的2019

9月25日云栖大会&#xff0c;阿里云智能总裁张建锋展示了阿里巴巴第一颗自研芯片——含光800&#xff0c;打破了两项世界纪录&#xff0c;性能和能效比均为第一&#xff0c;是全球最强的AI推理芯片。 张建锋说&#xff1a;“在全球芯片领域&#xff0c;阿里巴巴是一个新人&…

坦白讲!做 Java 工程师,挺好!

很多想要入行编程圈的人问到我该学哪一种语言&#xff0c;我都毫不犹豫的说Java。首先我们先看个排行榜&#xff0c;来自权威开发语言排行榜TIOBE的数据&#xff08;截止到2020年4月&#xff09;&#xff0c;可以看到Java语言依然在语言排行榜霸占第一的位置&#xff01;看到这…

达摩院2020十大科技趋势发布:科技浪潮新十年序幕开启

2020年第一个工作日&#xff0c;“达摩院2020十大科技趋势”发布。这是继2019年之后&#xff0c;阿里巴巴达摩院第二次预测年度科技趋势。 回望2019年的科技领域&#xff0c;静水流深之下仍有暗潮涌动。AI芯片崛起、智能城市诞生、5G催生全新应用场景……达摩院去年预测的科技…

VS Code Rainbow Fart 小姐姐语音提示插件

文章目录1. 安装插件2. 启用Rainbow Fart3. 效果图1. 安装插件 Rainbow Fart2. 启用Rainbow Fart ctrl shirt p输入Rainbow Fart回车&#xff08;Enter&#xff09; 打开open 3. 效果图

日志服务(SLS)集成 Spark 流计算实战

前言 日志服务作为一站式的日志的采集与分析平台&#xff0c;提供了各种用户场景的日志采集能力&#xff0c;通过日志服务提供的各种与与SDK&#xff0c;采集客户端&#xff08;Logtail&#xff09;&#xff0c;Producer&#xff0c;用户可以非常容易的把各种数据源中的数据采…

再见了,Python!!

结合我最近这些年的Python学习、开发经验&#xff0c;发现90%的人在学Python时都会遇到下面这些问题&#xff1a;1.想学Python&#xff0c;但没什么经验根本不知道从何学起&#xff0c;而且应用方向太多了根本不知道该选择什么方向...2.基础入门看似简单&#xff0c;但是进阶实…

上去很美的 Serverless 在中国落地的怎么样了?

说起当前最火的技术&#xff0c;不得不提的一个概念就是 Serverless。2019 年几乎所有人都在说 Serverless&#xff0c;实际落地 Serverless 的有多少&#xff1f;Serverless 作为一种新型的互联网架构&#xff0c;直接或间接推动了云计算的发展&#xff0c;从 AWS Lambda 到阿…

Knative 驾驭篇:带你 '纵横驰骋' Knative 自动扩缩容实现

Knative 中提供了自动扩缩容灵活的实现机制&#xff0c;本文从 三横两纵 的维度带你深入了解 KPA 自动扩缩容的实现机制。让你轻松驾驭 Knative 自动扩缩容。 注&#xff1a;本文基于最新 Knative v0.11.0 版本代码解读 KPA 实现流程图 在 Knative 中&#xff0c;创建一个 Rev…

MongoDB 计划从“Data Sprawl”中逃脱

原文作者 | Adrian Bridgwater译者 |天道酬勤&#xff0c;责编 |晋兆雨头图 | CSDN 付费下载自视觉中国提供特定技术子集的软件供应商&#xff0c;喜欢用尽可能广泛的标签来提升自己&#xff0c;这是一种传达平台宽度和能力的方式。我们知道MongoDB以开源根数据库而闻名&#x…

FastMock

文章目录官网文档官网 官网&#xff1a;https://www.fastmock.site/#/ 文档 https://marvengong.gitee.io/fastmock/#/

关于在nw里使用require('printer')和nw.require('printer')报错的问题

公司项目为了兼容xp所以使用nw.js&#xff08;0.14.7-sdk&#xff09;&#xff0c;用到了printer模块&#xff08;第三方的c打印模块&#xff09;&#xff0c;在引入该模块的时候&#xff0c;使用了require导致一直报cannot find modul “.”&#xff0c;后来改用nw.require&am…

小蜜团队万字长文 | 讲透对话管理模型最新研究进展

对话管理模型背景 从人工智能研究的初期开始&#xff0c;人们就致力于开发高度智能化的人机对话系统。艾伦图灵&#xff08;Alan Turing&#xff09;在1950年提出图灵测试[1]&#xff0c;认为如果人类无法区分和他对话交谈的是机器还是人类&#xff0c;那么就可以说机器通过了…

mockjs

文章目录官网文档地址示例官网 &#xff1a;http://mockjs.com/ 文档地址 https://github.com/nuysoft/Mock/wiki/Getting-Started 示例 http://mockjs.com/examples.html