美文网首页
大象装进冰箱--本地存储与浏览器端indexDB存储间的转换

大象装进冰箱--本地存储与浏览器端indexDB存储间的转换

作者: mensionyu | 来源:发表于2018-11-07 23:38 被阅读0次

http://www.ruanyifeng.com/blog/2018/07/indexeddb.html

1. 打开数据库 const indexDB=window.indexDB||

第一次打开数据库时,会先触发upgradeneeded事件,然后触发success事件。


onupgradeneeded事件会调用createObjectStore方法,创建一个对象仓库名为“elephants”

调用success方法 调用 getImageFile();方法


创建一个XMLHttpRequest对象

1.xhr发出请求,设置相应类型为二进制流文件 

2给当前请求增加一个监听事件,事件类型是加载,指出加载时触发

3send()发出xhr请求

相应的结果xhr.response为blob类型的二进制文件



调用putElephantInDb方法向数据库elephantFiles的对象仓库elephants中添加键为image值为blob的一行记录,这就完成了向浏览器端存储数据(大象图片)的 任务

IDBTransaction 对象用来异步操作数据库事务,所有的读写操作都要通过这个对象进行。IDBDatabase.transaction()方法返回的就是一个 IDBTransaction 对象。var db;var DBOpenRequest = window.indexedDB.open('demo', 1);DBOpenRequest.onsuccess = function(event) { db = DBOpenRequest.result; var transaction = db.transaction(['demo'], 'readwrite'); transaction.oncomplete = function (event) { console.log('transaction success'); }; transaction.onerror = function (event) { console.log('tansaction error: ' + transaction.error); }; var objectStore = transaction.objectStore('demo'); var objectStoreRequest = objectStore.add({ foo: 1 }); objectStoreRequest.onsuccess = function (event) { console.log('add data success'); };};


使用window.url创建URL对象

const URL const URL=window.URL||window.webkitURL; const imgURL=URL.createObjectURL(ImgFile);=window.URL||window.webkitURL; const imgURL=URL.createObjectURL(ImgFile);


下面是imgURL的值


打开冰箱 ---------xmlhttprequest 得到本地图片发送请求获取响应地址 请求完调用装进冰箱的方法 即下面的putelephantInDb()

把大象装进冰箱-------向indexDB里添加数据即blob

关冰箱-----------get请求成功以后把本地图片显示在浏览器

最终效果


应该可以在hxr请求中直接完成存储并显示的?

图片的格式 blob base64?

本地URL window.URL?

相关文章

  • 大象装进冰箱--本地存储与浏览器端indexDB存储间的转换

    http://www.ruanyifeng.com/blog/2018/07/indexeddb.html 1. ...

  • 面向对象 类

    举例:大象装进冰箱 面向过程:强调的是过程(动作) 打开冰箱——存储大象——关上冰箱 C语言 面向对象:强调的是对...

  • 毕向东Java基础教程-面向对象

    面向对象的概念 举例:大象装进冰箱。 面向过程步骤:打开冰箱--存储大象--关上冰箱。对于面向过程思想,强调的是过...

  • 《JS原理、方法与实践》- 本地存储

    本地存储就是指在浏览器中存储数据,是相对于服务器中存储数据来说的。 1. 本地存储的分类 浏览器的本地存储主要包括...

  • HTML本地存储

      本地存储:通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储。...

  • 2018-07-05

    存储网关: 协议转换 加速访问 解决什么? 帮助企业或个人实现本地存储与公有云存储的无缝衔接。云存储普遍使用 H...

  • session,cookie,localStorage,sess

    首先,从存储位置来看,可以分为服务端存储和客户端存储两种。 服务端存储:session浏览器端存储:cookie,...

  • HTML5之LocalStorage本地存储

    一、本地存储 在HTML5诞生之前,网站如果想在浏览器端存储数据,只能使用Cookie,使用Cookie有较多的限...

  • 前端基础

    HTTP 请求,传输数据方式 IndexdDB 是 HTML5 的本地存储,把一些数据存储到浏览器(客户端)中,当...

  • 前端基础整理 | 本地存储 Cookie、SessionStor

    本地存储除了标题所述的几种,还包括IndexDB,相当于在客户端建立一个数据库,和上面那些相差有点大,所以先不提。...

网友评论

      本文标题:大象装进冰箱--本地存储与浏览器端indexDB存储间的转换

      本文链接:https://www.haomeiwen.com/subject/escbxqtx.html