14

我有一个离线运行的现有网络应用程序(使用 HTML5 缓存清单)。

我将数据存储在 localStorage 中。我将达到 localStorage 的 5Mb 限制。我可以将 CouchDB 用作本地数据库,有效地将 localStorage 替换为 CouchDB 实现吗?

我不想在任何服务器上安装 CouchDB,我只想利用客户端存储功能来替换我的 localStorage 实现。

是否像下载相关的 couchdb.js 文件并更改我的客户端持久性代码一样简单?

谢谢

4

3 回答 3

9

像往常一样“这取决于”

如果您的应用程序是从网站提供的,那么不,有像pouchdb这样的项目旨在提供 CouchDB 的客户端版本,但是它们不会帮助您避免浏览器的限制

如果您将应用程序作为独立应用程序发布,那么可以,按照安装说明将 CouchDB 添加到您的应用程序应该是一件相当简单的事情:

并让您的客户端代码发出沙发请求而不是 localStorage 请求,记住:

  1. localStorage 只存储字符串,CouchDB 存储 JSON,并且
  2. 对 Couch 的调用是异步的,而 localStorage 是同步的,尽管这些都不应该是 javascript 中特别大的变化。

要查看的另一个主要选项是 PhoneGap,它可以让您在处理 html / javascript 的同时从设备访问本机存储 API,它是一个跨平台库,允许您访问本机 API,包括不会有的存储 API浏览器限制 - http://docs.phonegap.com/phonegap_storage_storage.md.html#Storage

PhoneGap 还要求您以应用程序而非网站的形式发布(这是不受浏览器限制的唯一方式)。

于 2011-09-02T02:33:37.657 回答
6

This should be updated. PouchDB now uses IndexedDB which on most browsers I have tried does not have size limits (or is an option). I am storing several 100MB of map tiles in a browser.

See: https://gis.stackexchange.com/questions/62070/offline-slippy-map-tiles-database-for-leaflet/62073#62073

于 2013-06-28T13:09:20.590 回答
3

一个简短的回答是,在您的手机上安装 Couchbase Mobile 需要您作为应用程序发布,并且它拥有的 Couch API 比 localStorage API 功能更全面。

If you want to get a sense for what you can do in the scope of CouchDB's web apis (not mobile specific, but handy on mobile), see this architecture document.

于 2011-09-02T15:26:24.833 回答