2013-08-24 19 views

Odpowiedz

28

Po kilku badań i jest to stosunkowo nowy temat, myślałem, że byłoby ciekawie podzielić się moimi doświadczeniami odpowiadając na moje własne pytanie:

Jaka jest różnica między używaniem PouchDB i korzystania CouchBase Lite z nowa wtyczka LiteGap?

PouchDB można utworzyć lokalną bazę danych (websql lub IndexedDB) na urządzeniu i replikować go z zewnętrznym CouchDB. Może być również używany jako klient dla zewnętrznego CouchDB.

Couchbase Lite tworzy bazę danych iOS/Android na urządzeniu, domyślnie dostępną pod adresem http://localhost:5984. Następnie można replikować lokalną Couchbase Lite z innymi zewnętrznymi usługami Couchbase/CouchDB. LiteGap pozwala na tworzenie i używanie bazy danych Couchbase Lite w projekcie PhoneGap.

Oba rozwiązania są dostępne do użycia w projekcie Phonegap.

Czy są to dwa różne rozwiązania tego samego problemu?

W skrócie, nie.

PouchDB jest wieloplatformowy, więc można go używać w projekcie sieciowym, a także w aplikacji hybrydowej. Zapewnia również użyteczne API do bezpośredniej interakcji z lokalnym db lub zewnętrznym CouchDB. Opierając się na technologiach websql/IndexedDB, masz ograniczenia pamięci masowej, które wymagają od użytkownika, aby zezwolił na więcej miejsca w lokalnej pamięci dla twojej strony internetowej/aplikacji.

Couchbase Lite to natywne rozwiązanie dla systemu iOS/Android, które ustawia bazę danych Couchbase w urządzeniu localhost urządzenia. Wraz z wtyczką LiteGap możesz go używać w projekcie Phonegap.

Czy interfejs API PouchDB może być używany do interakcji z lokalną bazą danych CouchBase Lite?

Tak, ale niektóre funkcje nie działały zgodnie z oczekiwaniami w moich testach.

Po pierwsze, Couchbase Lite nie ma javascript HTTP API, więc pomyślałem, aby używać Etui do działania jako klient. PouchDB może korzystać z zewnętrznych serwisów Couch, więc ustawiamy Etui na urządzenie Couchbase Lite na localhost:5984.

Teraz z Etui można create bazy danych, put() lub replicate z lokalnego do chmury.Jednak znalazłem problemy z replikacją z chmury na lokalną przy użyciu metody Pouch'a replicate.from. Jednym z rozwiązań tego problemu jest skonfigurowanie replikacji dwukierunkowej przy użyciu starego, dobrego $.ajax, w celu opublikowania w urządzeniu http://localhost:5984/_replicate, tak jakby użytkownik korzystał z węzła curl (przekazując dane obiektu z source, target, continous itd.).

Mam nadzieję, że pomoże to komuś w podjęciu decyzji o tym, jakie technologie są używane podczas tworzenia hybrydowej aplikacji offline/online z możliwością synchronizacji.

+1

"plugin SQLite dla Cordova/PhoneGap" z tej strony: http://pouchdb.com/adapters.html mówi, że nie muszą już być świadomy kwot itd. B "se PouchDB integruje się z SQLite Jeśli się nie mylę! – inblueswithu

8

Po prostu chciałem poinformować, że napisałem obszerną performance review, pokazującą różnice między CouchDB i Couchbase Lite.

Niektóre odkrycia:

  • PouchDB wygrywa, gdy „dodawanie dokumentów masowych” oraz „uzyskanie dokumentu przez ID”
  • Couchbase Lite wygrywa, kiedy „się wszystkie dokumenty”
  • czerpią kiedy „Podczas badania doc poprzez widzenia”(PouchDB jest szybsza ale Couchbase Lite ma buforowanie)
1

Oprócz 2 innych odpowiedzi, here to aplikacja przykład z Couchbase.com bloga Si te, jak zbudować aplikację listy zadań z pouchDB i zsynchronizować ją z CouchBase Mobile.

Innym link na Blackberry deweloperzy blog