JJJ*_*JJJ 14 javascript html5 indexeddb
我正在为自己使用一个需要简单数据库的工具.这似乎是学习HTML5 IndexedDB API的好机会,但重要的是我不要在任何时候丢失数据.
我想备份浏览器的配置文件目录可以进行备份,但我也希望可以使用不同的计算机,因此导出和导入数据库会很好.有没有一种简单的方法来导出和导入IndexedDB数据库?浏览器特定的解决方案是好的.
纯粹的IndexedDB规范中没有这样的东西,但是,可以编写自己的方法来实现这一点.
导入数据的基本步骤是
add或put操作)要导出对象库,您可以:
onsuccess向请求对象添加回调以捕获行值var.最后一行将发出null,这是一个您可以观察的状态,以确定光标何时耗尽其所有记录并完成.发生这种情况时,您可以调用导出回调,传递表示对象存储备份的特权对象数组.
尝试使用jStorage,它支持大多数浏览器,除了没有 localStorage 的浏览器(例如已弃用的 Safari3)
它有很多功能,但我们可以尝试用这些功能来实现您想要的:
设置(键,值)
$.jStorage.set(key, value)
Run Code Online (Sandbox Code Playgroud)
将值保存到本地存储。key 必须是字符串,否则会抛出异常。value 可以是任何 JSONeable 值,包括对象和数组或 XML 节点。目前 XML 节点不能嵌套在其他对象中: $.jStorage.set("xml", xml_node) 可以,但 $.jStorage.set("xml", {xml: xml_node}) 则不行。
获取(键[,默认])
value = $.jStorage.get(key)
value = $.jStorage.get(key, "default value")
Run Code Online (Sandbox Code Playgroud)
如果键存在,则 get 检索值;如果不存在,则检索默认值。key 必须是字符串,否则会抛出异常。默认值可以是任何值。
冲洗()
$.jStorage.flush()
Run Code Online (Sandbox Code Playgroud)
清除缓存。
指数()
$.jStorage.index()
Run Code Online (Sandbox Code Playgroud)
以数组形式返回当前使用的所有键。
var index = $.jStorage.index();
console.log(index); // ["key1","key2","key3"]
Run Code Online (Sandbox Code Playgroud)
考虑到这一点,考虑到您已经设置了一个数据库,您可以使用var index = $.jStorage.index();and 与数组一起创建一个 jQuery .each() 循环来获取数组的每个键并调用 get()$.jStorage.get(key)并添加到一个大字符串,最终可以解析为 .csv,甚至 XML 或 json(您选择)。
有了这些数据在手,你就可以$.jStorage.flush()一清二楚了。
然后,如果您想导入新数据库的数据,您需要做的就是使用 .each() 读取您保存的字符串/文件并开始设置 kay/value par $.jStorage.set(key, value)。
如果您还没有数据库,只需使用$.jStorage.set(key, value). :)
| 归档时间: |
|
| 查看次数: |
14962 次 |
| 最近记录: |