我可以使用CouchDB mobile作为localStorage的替代品吗?

时间:2011-09-01 17:00:20

标签: couchdb local-storage offlineapps pouchdb

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

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

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

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

由于

3 个答案:

答案 0 :(得分:9)

像往常一样“它取决于”

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

如果您将应用程序作为独立应用程序运送,那么,按照安装说明将CouchDB添加到您的应用程序应该是一件非常简单的事情:

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

  1. localStorage仅存储字符串,CouchDB存储JSON和
  2. 对Couch的调用是异步的,localStorage是同步的,但这些都不应该是javascript中特别大的变化。
  3. 要看的另一个主要选项是PhoneGap,它可以让您从设备访问本机存储API,同时仍然处理html / javascript,它是一个跨平台库,允许您访问本机API,包括Storage API没有浏览器限制 - http://docs.phonegap.com/phonegap_storage_storage.md.html#Storage

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

答案 1 :(得分:6)

这应该更新。 PouchDB现在使用IndexedDB,在我尝试的大多数浏览器上都没有大小限制(或者是一个选项)。我在浏览器中存储了几个100MB的地图图块。

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

答案 2 :(得分:3)

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

如果您想了解您在CouchDB的网络api范围内可以做些什么(不是特定于移动设备,但在移动设备上方便),请参阅this architecture document