pouchDB
在浏览器端,目前主要的几种存储方法有:cookie
、sessionStorage
、localStorage
以及webSQL
与indexDB
.
cookie
cookie
主要是网站访问过程中保存用户身份信息,大小为4kb.既可以通过document.cookie
和http请求中set-cookie
来设置。并且在发送http请求中随着head中发送到服务器。
sessionStorgae
是新标准,ie8以及以后才支持。主要用于会话信息存储,当前页面关闭后则清楚(如果是刷新,则不清楚)大小限制为5M,不会传送到服务器。可以触发onStorageChange事件,在本地状态更新时候很有帮助。
localstorage
也是html5新标准,ie8以及以后才支持。除非清除,否则信息永远保存。大小限制为5M。可以触发onStorageChange事件。
websql与indexDB
都是html5新的本地存储api。但是随着发展,websql逐渐废弃,indexDB成为新的流行。特点是单个数据库本地存储大小为400M左右。并且数据库创建数目不限。但是使用比较不方便。于是便介绍一个在操作本地数据库的js开源库pouchDB
pouchDB
pouchdb主要是更友好的操作本地数据库,方便开发离线应用。pouchdb首先选择indexDB, 回滚方案为websql。官网:https://pouchdb.com/可查看浏览器支持情况,虽然国内使用的人不多,单是当前github的star数量为6000多,可见还是很火的!
首先把pouchdb引入页面即可开始使用。
var db = new PouchDB('db'); //新建数据库,若存在,直接打开,当然也可以访问远程数据库,碉堡有没有。
db.put({
_id : Date.now() + '', //特别注意的是这个id必须为字符串
data : data
})
当然批量写入推荐使用db.bulkDocs, 此时可以自动创建id。另外一个亮点是支持回调、promiss 和 es6的写法。
db.bulkDocs([
{
title : 'Lisa Says',
_deleted : true,
_id : "doc1",
_rev : "1-84abc2a942007bee7cf55007cba56198"
},
{
title : 'Space Oddity',
_deleted : true,
_id : "doc2",
_rev : "1-7b80fc50b6af7a905f368670429a757e"
}
], function(err, response) {
if (err) { return console.log(err); }
// handle result
});
详细去参考api。