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.
"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