Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use CouchDB mobile as a replacement for localStorage?

I have an existing web app that runs offline (using HTML5 cache manifest).

I am storing data in localStorage. I am going to hit the 5Mb limit for localStorage. Can I use CouchDB as a local db, effectively replacing localStorage with the CouchDB implementation?

I don't want to install CouchDB on any servers, I just want to leverage the client-side storage capability to replace my localStorage implementation.

Is it as simple as downloading the relevant couchdb.js files and altering my client-side persistence code?

Thanks

like image 294
Journeyman Avatar asked Sep 01 '11 17:09

Journeyman


2 Answers

As usual "it depends"

If your application is being served from a website then no, there are projects like pouchdb which aim to provide a client side version of CouchDB, however they arent going to help you avoid the limitations of a browser

If you are shipping your application as a standalone application then yes, it should be a fairly simple matter of following the installation instructions to add CouchDB to your application:

  • Android: http://www.couchbase.org/get/couchbase-mobile-for-android/current
  • iOS: http://www.couchbase.org/get/couchbase-mobile-for-ios/current

and having your client code make couch requests instead of localStorage ones, remembering that:

  1. localStorage only stores strings and CouchDB stores JSON, and
  2. calls to Couch are asynchronous and localStorage are synchronous, neither of those should be particularly big changes in javascript though.

The other main option to look at would be PhoneGap which will provide you access to the native storage API's from the device while still dealing in html / javascript, its a cross platform library that allows you to access native API's including the Storage API that wont have browser limitations - http://docs.phonegap.com/phonegap_storage_storage.md.html#Storage

PhoneGap will also require you to ship as an application and not a website (its the only way to not be limited by the browser).

like image 143
Dale Harvey Avatar answered Oct 10 '22 02:10

Dale Harvey


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

like image 37
Dr.YSG Avatar answered Oct 10 '22 00:10

Dr.YSG