图片本地缓存

图片懒加载是通过判断http图片文件是否存在你的本地,如果未存在会将图片缓存到本地,如果已经存在就不做缓存,使用到的技术md5加密,mui、html5+.

应客户的要求,需要做懒加载,本人也找了一段时间才找到这个代码,因为是异步加载的,为了配合mui,我添加了mui的初始化代码,才可以操作plus,否则会报错

/*** 图片懒加载* @param {Object}   obj       DOMElement* @param {Function} callback  加载完成回调函数* * @author fanrong33* @version 1.1.0 build 20160107*/function lazyload(obj, callback){mui.plusReady(function(){var debug = false; // 默认打印调试日志if(obj.getAttribute('data-loaded')){return; }var image_url = obj.getAttribute('data-lazyload');debug && console.log(image_url);// 1. 转换网络图片地址为本地缓存图片路径,判断该图片是否存在本地缓存// http://...jpg -> md5// 缓存目录 _downloads/image/(md5).jpgvar image_md5           = md5(image_url);var local_image_url     = '_downloads/image/'+image_md5+'.jpg'; // 缓存本地图片urlvar absolute_image_path = plus.io.convertLocalFileSystemURL(local_image_url); // 平台绝对路径// alert(absolute_image_path);// alert(local_image_url);// alert(image_md5);// new temp_img 用于判断图片文件是否存在var temp_img = new Image();temp_img.src = absolute_image_path;temp_img.onload = function(){debug && console.log('存在本地缓存图片文件'+local_image_url+',直接显示');// 1.1 存在,则直接显示(本地已缓存,不需要淡入动画)obj.setAttribute('src', absolute_image_path);obj.setAttribute('data-loaded', true);obj.classList.add('img-lazyload');callback && callback();return;}temp_img.onerror = function(){debug && console.log('不存在本地缓存图片文件');// 1.2 下载图片缓存到本地debug && console.log('开始下载图片'+image_url+' 缓存到本地: '+local_image_url);function download_img(){var download_task = plus.downloader.createDownload(image_url, {filename: local_image_url // filename:下载任务在本地保存的文件路径}, function(download, status) {if(status != 200){// 下载失败,删除本地临时文件debug && console.log('下载失败,status'+status);if(local_image_url != null){plus.io.resolveLocalFileSystemURL(local_image_url, function(entry) {entry.remove(function(entry) {debug && console.log("临时文件删除成功" + local_image_url);// 重新下载图片download_img();}, function(e) {debug && console.log("临时文件删除失败" + local_image_url);});});}}else{// 把下载成功的图片显示// 将本地URL路径转换成平台绝对路径obj.setAttribute('src', plus.io.convertLocalFileSystemURL(local_image_url));obj.setAttribute('data-loaded', true);obj.classList.add('img-lazyload');callback && callback();}});download_task.start();}download_img();}});
}

html代码

list_item += '<div class="product-goods-img"><img src="img/libai.jpg" data-lazyload="'+data['floorList'][i]['productList'][j]['ImageUrl']+'"  onload="lazyload(this)" /></div>';
这个项目是我一年之前做的,那时是通过拼接字符串,然后append进去,如果是用vue或者angular就不用拼接了,直接在img标签插入以下代码即可data-lazyload(需要懒加载的图片),onload。

备注:需要引入:

<script src="./js/md5.min.js" type="text/javascript"></script>
<script src="./js/lazyload.js" type="text/javascript"></script>

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

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

相关文章

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such

[rootiZbp10xlek93e0is7ye8o6Z bin]# ./mysqld --usermysql --basedir/usr/local/mysql-8.0 --datadir/usr/local/mysql-8.0/data/ --initialize 详细报错如下&#xff1a;./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No s…

阿里科学家再获世界级荣誉,平头哥首席科学家谢源当选AAASFellow

11月27日&#xff0c;美国科学促进会&#xff08;AAAS&#xff09;公布了2019年度会士&#xff08;Fellow&#xff09;增选结果&#xff0c;阿里巴巴平头哥首席科学家、达摩院高级研究员谢源当选&#xff0c;这也是信息、计算和通信领域新当选的24名Fellow之一&#xff0c;一同…

开放下载!从RCNN到SSD,这应该是最全的一份目标检测算法盘点

导读&#xff1a;从简单的图像分类到3D姿势识别&#xff0c;计算机视觉从来不缺乏有趣的问题和挑战。通过肉眼我们可以检测出一张宠物照中的猫和狗&#xff0c;可以识别出梵高作品《星夜》中的星星和月亮&#xff0c;那如何通过算法赋予机器“看”的智能&#xff0c;就是我们接…

全网最详细TCP参数讲解,再也不用担心没有面试机会了......

作者 | 小林coding责编 | 王晓曼封图 | CSDN 下载自视觉中国前言TCP 性能的提升不仅考察 TCP 的理论知识&#xff0c;还考察了对于操作系统提供的内核参数的理解与应用。TCP 协议是由操作系统实现&#xff0c;所以操作系统提供了不少调节 TCP 的参数。Linux TCP 参数如何正确有…

图片的缩放与拖拽

这个图片的缩放的流畅度还是很好的&#xff0c;需要引入touch.js,好像是百度团队那边写的 <script src"./js/touch.min.js" type"text/javascript"></script> $(function() { //放大缩小var scaleVal 1;var initialScale scaleVal || …

为了帮助卖家成交,闲鱼工程师做了些什么?

引言 闲鱼是一个C2C平台&#xff0c;提高卖家活跃度不仅有利于成交的提升&#xff0c;对于用户增长也有积极意义。而其中的关键点就在于其成交的效率。而个人卖家由于其专业程度不如专业卖家&#xff0c;成交效率往往并不高。我们希望可以实现两个提升&#xff1a; 能帮助卖家…

TOP互联网公司都在用,为什么SRE比传统运维更抢手?

阿里妹导读&#xff1a;双11的完美收官&#xff0c;2684亿的销售奇迹及顺滑极致的客户体验让双11背后的技术再次被推到风头浪尖。而双11技术热点话题&#xff0c;不得不提集团核心系统100%上云这一技术创举。 作为集团上云的底座产品&#xff0c;ECS承担了集团上云基础设施的重…

***error*** (zip#Browse) unzip not available on your system

文章目录1. 修改jar配置文件2. 现象3. 解决方法1. 修改jar配置文件 vim xxx.jar2. 现象 用不同用户打开&#xff0c;效果是不一样的&#xff0c;下图分别是 root账号、普通用户打开的 root账号显示异常还不明显&#xff0c;切换成普通用户后发现就很明显了&#xff0c;原来…

iscroll的使用

那时候刚出来工作&#xff0c;很多东西都不懂&#xff0c;也是整了很久&#xff0c;还是问了别人才知道怎么使用&#xff0c;HTML的布局比较重要。 引入iscrll.js文件&#xff1a; <script src"./js/iscroll-master/build/iscroll.js" type"text/javascrip…

帅爆了!3个月0基础转型头条数据分析师,他做对了什么?

年初的黑天鹅打乱了我的求职阵脚&#xff0c;专业不对口&#xff0c;无实习经验&#xff0c;在求职路上的竞争优势几乎为0&#xff0c;然而&#xff0c;开启自救模式后&#xff0c;我顺利成为了头条数据分析师&#xff0c;下面我就讲讲人生是怎么开挂的。随着人工智能普及&…

淘宝如何保障业务稳定性——诺亚(Noah)自适应流控

作者|哲良、八风、泽彬 出品|阿里巴巴新零售淘系技术部 诺亚(Noah) 自适应流控解决方案 基于自动控制算法&#xff0c;解决了人工限流配置疏漏或过时的痛点&#xff0c;大幅提升应用抵抗流量冲击的能力。在刚过去的双11中&#xff0c;诺亚(Noah)保障了大量业务应用系统&#x…

全球独家 | 赋予企业级开源无限可能,阿里云首发云数据库MongoDB 4.2版本

阿里云MongoDB 4.2版提供分布式事务、通配符索引、字段级加密等一系列重磅新功能&#xff0c;让云上用户可以第一时间体验最新版本&#xff0c;构建更高效、更灵活的应用。 作为全球领先的通用数据库平台&#xff0c;MongoDB是世界排名第一的NoSQL数据库&#xff0c;同时也是业…

Filezilla 服务器发回了不可路由的地址。使用服务器地址代替

文章目录1.现象2. 解决方法1.现象 状态: 正在连接 XXXXXXXXXXXXXX… 状态: 连接建立&#xff0c;等待欢迎消息… 响应: 220 Microsoft FTP Service 命令: USER XXXXXXXXXXXXX 响应: 331 Password required for XXXXXXXXXXXXXX 命令: PASS ****** 响应: 230 User XXXXXXXXXXX l…

倒计时1天 | 张钹院士领衔,AI开发者大会20大论坛全攻略!

2020年7月3—4日&#xff0c;由 CSDN 主办的第三届 AI 开发者大会&#xff08;AI ProCon 2020&#xff09;&#xff08;大会官网&#xff1a;https://aiprocon.csdn.net/&#xff09;将以线上直播的形式与大家相见。本次大会历时2天&#xff0c;一次性设立6大主题、20大精彩分论…

使用html5+的plus调起相机拍照,使用canvas压缩图片,转成base64传到后台

html代码&#xff1a; <div class"form-com door"><label for"">门头照&#xff1a;</label><a href"javascript:void(0);" onclick"getImage(1)"><img id"img1" class"img" src&quo…

1亿人点赞的晚会,如何做技术沉淀?

阿里妹导读&#xff1a;今年是双11的第11年&#xff0c;猫晚的第5年。今年的天猫双11狂欢夜(简称“猫晚”)有超200个国家和地区通过优酷APP观看猫晚直播。5144万人通过猫晚公益直播间观看明星卖农货&#xff0c;网友在淘宝直播间点赞1亿次&#xff0c;海外艺人参与的节目超过了…

K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造

导读&#xff1a;2019 年阿里巴巴核心系统 100% 以云原生方式上云&#xff0c;完美地支撑了 双11 大促。这次上云的姿势很不一般&#xff0c;不仅是拥抱了 Kubernetes&#xff0c;而且还以拥抱 Kubernetes 为契机进行了一系列对运维体系的深度改造。 Kubernetes 作为云原生的最…

IDC:移动云进入云运营服务市场前五!

据IDC最新发布的《中国云运营服务市场跟踪&#xff0c;2019H2》显示&#xff0c;2019年下半年中国云运营服务市场规模达到107亿&#xff0c;同比增长27.9%。其中&#xff0c;移动云在全国云运营服务市场份额中占比4.9%&#xff0c;排名进入前五。什么是云运营市场服务&#xff…

三级联动

引入插件的css和js代码&#xff1a; <link href"./css/LArea.css" rel"stylesheet" > <script src"./js/LAreaData1.js"></script> <script src"./js/LArea.js"></script> html代码&#xff1a; <…