内容简介:发表于 2018-10-23 11:16:48 by月小升利用ajax XHR对象可以创建获取图片流,将一个图片转换成DATAURL的模式存储到本地
发表于 2018-10-23 11:16:48 by月小升
利用ajax XHR对象可以创建获取图片流,将一个图片转换成DATAURL的模式存储到本地
<!DOCTYPE HTML>
<html>
<body>
<figure>
<img id="glassesgirl" src="" alt="A girl">
glasses girl
</figure>
<script type="text/javascript">
// 获取文件
var glassesgirlStorage = localStorage.getItem("glassesgirl"),
glassesgirl = document.getElementById("glassesgirl");
if (glassesgirlStorage) {
//如果已经存在则直接重用已保存的数据
console.log("From Cache");
glassesgirl.setAttribute("src", glassesgirlStorage);
}else{
// 创建XHR, BlobBuilder 和FileReader 对象
var xhr = new XMLHttpRequest();
var fileReader = new FileReader();
xhr.open("GET", "glasses.jpg", true);
xhr.responseType = 'blob';
//https://developer.mozilla.org/zh-CN/docs/Web/API/Blob Blob可以用于存贮对象
//https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader/readAsDataURL
xhr.addEventListener("load", function () {
if (xhr.status === 200) {
var blob = this.response;
fileReader.onload = function (evt) {
// 用Data URI的格式读取文件内容
var result = evt.target.result; //要点
// 将图片的src指向Data URI
glassesgirl.setAttribute("src", result);
//保存到本地存储中
try {
localStorage.setItem("glassesgirl", result);
}
catch (e) {
console.log("Storage failed: " + e);
}
};
// 以Data URI的形式加载blob
fileReader.readAsDataURL(blob);
}
}, false);
// 发送异步请求
xhr.send();
}
</script>
</body>
</html>
图片头
data:image/jpeg;base64,/9j/4A
注意地址要是本地服务器地址
http://localhost/javaer/h5/hfiles.html
或者线上地址
http://java-er.com/hfiles.html
否则XHR会因为跨域问题,无法访问
你会不会问,java-er.com这个小博客研究这个这能做什么。其实 缓存 图片的确干不了啥,因为5M,不过可以 缓存 个小图标啥得,也没什么意义。本文为了研究本地化存储,当 localStorage 换成indexDB就会突破5M的限制,将图片转换为本地存贮的技术是一样的。
我研究这个是因为我要 缓存 小音频文件,方便地铁上断网的时候,也能听。
不过我目前为止也只能借XHR的请求来转换。其实我想用 php 直接给转换成这个字符串,传给js对象就完事了。
- H5 本地缓存localStorage缓存机制
- redis缓存wordpress
- 如何缓存wordpress
- php九大缓存技术,你知道几个?
- 多屏自适应的优缺点
- find shell命令来删除过期的缓存
- html5如何在IOS下自动播放音乐
- html5 开发中遇到空白底边有个空白
- HTML5 多图上传
- FireFox chrome 模拟手机浏览器 调试手机网页
- HTML5手机浏览直接给一个号码打电话,发短信
- 14个酷炫的HTML5网站
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
以上所述就是小编给大家介绍的《H5 localStorage 缓存图片》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Glide获取缓存大小并清除缓存图片
- React Native图片缓存组件
- mPaaS 3.0 多媒体组件发布 | 支付宝百亿级图片组件 AntMedia 锤炼之路(图片缓存篇)
- Android图片加载框架最全解析(三),深入探究Glide的缓存机制
- Postgresql编码唯一键,IDEA控制台缓存,图片Base64转码
- axios上传图片,koa2接收保存上传的图片,lrz在上传前压缩图片
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Usability for the Web
Tom Brinck、Darren Gergle、Scott D. Wood / Morgan Kaufmann / 2001-10-15 / USD 65.95
Every stage in the design of a new web site is an opportunity to meet or miss deadlines and budgetary goals. Every stage is an opportunity to boost or undercut the site's usability. Thi......一起来看看 《Usability for the Web》 这本书的介绍吧!