PouchDB是一个开源的JavaScript数据库,可以运行在浏览器中。PouchDB的数据存储、处理方式受到了Apache CouchDB的启发(CouchDB是一个面向文档的数据库,可通过JavaScript以MapReduce的方式对数据进行查询和索引,同时还提供增量复制的双向冲突检测和解决方案)。

PouchDB项目的目标是帮助开发者构建线上和线下都能很好地使用的Web应用程序

  • 在应用程序离线的时候,可以将用户数据保存在本地;
  • 当恢复在线状态时,通过CouchDB和其他相兼容的服务器来同步这些数据。

这样,无论用户在什么地方、使用什么设备登录,都可以看到一致的数据。

就像离线版的Gmail或印象笔记等应用,你可以在任何地方、任何时候编辑内容,无论线上或线下,而在下次登录时这些内容会自动同步,并且在同步的时候可以保证之前在不同设备上保存的离线内容不发生冲突。

示例代码如下:

  1. var db = new PouchDB('dbname');
  2. db.put({
  3. _id: 'dave@gmail.com',
  4. name: 'David',
  5. age: 66
  6. });
  7. db.changes({
  8. onChange: function() {
  9. console.log('Ch-Ch-Changes');
  10. }
  11. });
  12. 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

PouchDB:可随时同步的开源JavaScript数据库的更多相关文章

  1. TaffyDB:开源JavaScript数据库

    你是否曾经注意到javascript的对象有点像数据库中的记录,你把很多javascript对象包装到一起时就像是你在处理一个数据库中的表,TaffyDB是一个Javascript库,它提供了强大的数 ...

  2. 开源分布式数据库SequoiaDB在去哪儿网的实践

    编者注: 中国的数据库行业也迎来了一波新的热点事件.分布式数据库这块新消息不断,也让大家开始关注中国的分布式数据库.首先是短短一周内,Pingcap和SequoiaDB巨杉数据库陆续宣布了C轮的数千万 ...

  3. 开源面向对象数据库 db4o 之旅,第 1 部分: 初识 db4o

    前言 业界对持久存储领域的追求从未停止过,为了更方便.更容易地用对象表达我们的思维,开源领域和商业领域都涌现了许多新技术, ORM 的出现恰恰说明了这点.最近一年,业界也在反思,到底 ORM 给我们带 ...

  4. Capistrano:自动完成多台服务器上新版本的同步更新,包括数据库的改变

    https://baike.baidu.com/item/Capistrano/6844928?fr=aladdin   Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署we ...

  5. 开源分布式数据库中间件MyCat源码分析系列

    MyCat是当下很火的开源分布式数据库中间件,特意花费了一些精力研究其实现方式与内部机制,在此针对某些较为重要的源码进行粗浅的分析,希望与感兴趣的朋友交流探讨. 本源码分析系列主要针对代码实现,配置. ...

  6. mongo 数据库提前关闭 避免读写任务没有结束,异步任务没有完成,同步指令提前关闭数据库:'MongoError: server instance pool was destroyed'

    mongo 数据库提前关闭 // mongodb - npm https://www.npmjs.com/package/mongodb const mongoCfg = { uri: 'mongod ...

  7. 推荐一个markdown格式转html格式的开源JavaScript库

    这个markdown格式转html格式的开源JavaScript库在github上的地址: https://github.com/millerblack/markdown-js 从markdown 格 ...

  8. 【flyway】开源的数据库版本管理工具【migration】

    开源的数据库版本管理工具[migration] 记录

  9. 强大的开源企业级数据库监控利器Lepus

    Lepus监控简单介绍 官方网站:http://www.lepus.cc 开源企业级数据库监控系统 简洁.直观.强大的开源数据库监控系统,MySQL/Oracle/MongoDB/Redis一站式性能 ...

随机推荐

  1. 【LEETCODE OJ】Single Number II

    Problem link: http://oj.leetcode.com/problems/single-number-ii/ The problem seems like the Single Nu ...

  2. Git的环境搭建

    Git时当下流行的分布式版本控制系统. 集中式版本控制系统的版本库是集中存放在中央处理器的,所以开发者要先从中央服务器获取最新的版本,编码后再将自己的代码发送给中央处理器.集中式版本控制系统最大的缺点 ...

  3. Angularjs相关理论

    1.AngularJS的工作流程: (1)浏览器载入HTML,然后把它解析成DOM (2)浏览器载入angularjs脚本 (3)AngularJS等到DOMContentLoaded事件触发 (4) ...

  4. MonogoDB的GirdFS

    GirdFS是一种在MongoDB中存储大二进制文件的机制. mongofiles内置在MongoDB发布版中,可以用来在GridFS中上传.下载.列示.查找或删除文件. $ echo "H ...

  5. 学习笔记:iPhone终极指南、手机端、浏览器各种规范

    手机图解参考:http://www.paintcodeapp.com/news/iphone-6-screens-demystified 手机图标尺寸参考:https://developer.appl ...

  6. C,C++宏中#与##的讲解[转]

    MoreWindows 专注于Windows编程 C,C++宏中#与##的讲解 文中__FILE__与示例1可以参见<使用ANSI C and Microsoft C++中常用的预定义宏> ...

  7. 阅读<构建之法>第13、14、15、16、17章 与 《一个程序员的生命周期》读后感

    第十三章   软件测试 这一章介绍了很多关于测试的方法,比如说单元测试,代码覆盖率测试,构建验证测试,验收测试等,我有一个很纠结的问题,如果我开发软件,是把这么多测试全做完,还是挑一些测试来进行呢?如 ...

  8. LeetCode Search a 2D Matrix(二分查找)

    题意: 有一个矩阵,每行都有序,每行接在上一行尾后仍然有序.在此矩阵中查找是否存在某个数target. 思路: 这相当于用一个指针连续扫二维数组一样,一直p++就能到最后一个元素了.由于用vector ...

  9. 解密Redis持久化

    原文 http://blog.nosqlfan.com/html/3813.html 本文内容来源于Redis作者博文,Redis作者说,他看到的所有针对Redis的讨论中,对Redis持久化的误解是 ...

  10. 360兼容模式==ie8 兼容模式下 span标签占位问题

    ie8 兼容模式 ie8 标准渲染 应付金额 穿位 错误代码 <span class="span_em">应付金额:<em><span style=& ...