PouchDB是一个开源的JavaScript数据库,可以运行在浏览器中。PouchDB的数据存储、处理方式受到了Apache CouchDB的启发(CouchDB是一个面向文档的数据库,可通过JavaScript以MapReduce的方式对数据进行查询和索引,同时还提供增量复制的双向冲突检测和解决方案)。
PouchDB项目的目标是帮助开发者构建线上和线下都能很好地使用的Web应用程序:
- 在应用程序离线的时候,可以将用户数据保存在本地;
- 当恢复在线状态时,通过CouchDB和其他相兼容的服务器来同步这些数据。
这样,无论用户在什么地方、使用什么设备登录,都可以看到一致的数据。
就像离线版的Gmail或印象笔记等应用,你可以在任何地方、任何时候编辑内容,无论线上或线下,而在下次登录时这些内容会自动同步,并且在同步的时候可以保证之前在不同设备上保存的离线内容不发生冲突。
示例代码如下:
- var db = new PouchDB('dbname');
- db.put({
- _id: 'dave@gmail.com',
- name: 'David',
- age: 66
- });
- db.changes({
- onChange: function() {
- console.log('Ch-Ch-Changes');
- }
- });
- db.replicate.to('http://example.com/mydb');
PouchDB基于Apache 2.0开源协议,代码托管在GitHub上:https://github.com/daleharvey/pouchdb
官方网站:http://pouchdb.com/
文档:http://pouchdb.com/learn.html