Potrzebuję zbudować aplikację internetową HTML5 offline dla urządzenia iPad/tablet, na którym użytkownik może pobrać zestaw danych (tabelę danych) z serwera i zapisać go na urządzeniu. Użytkownik może następnie odłączyć się od serwera i wyświetlić/edytować dane lokalnie na urządzeniu. Dotyczy to osób, które pracują w odległych obszarach, w których nie ma zasięgu sieci i muszą zbierać/aktualizować dane. Po powrocie do biura mogą zsynchronizować/przesłać dane z powrotem na serwer. Powodem, dla którego musi to być HTML5, jest agnostyka platformy, tzn. Może działać w systemie iOS, Android itp., O ile ma nowoczesną przeglądarkę obsługującą HTML5.Funkcje opakowania dla IndexedDB
Mam już zbudowany system przy użyciu lokalnej pamięci HTML (dla danych) i pamięci podręcznej aplikacji HTML5 (dla stron/css/js/images) i działa dość dobrze z małymi zestawami danych (mogę wyświetlić , edytuj i zapisuj w trybie offline oraz ładuj/synchronizuj w trybie online). Teraz muszę skalować do 10 000 wierszy danych. Działa, ale działa dość wolno i zawiesza przeglądarkę na 10sekund podczas ładowania na czterordzeniowym cztero-rdzeniowym komputerze Intel.
Więc byłem badania kilka lepszych alternatyw niż lokalnego przechowywania:
1) WebSQL: będzie w stanie kwerendy danych za pomocą języka SQL i wykonać przyłącza itd. Problem polega na tym, że teraz nie będzie przestarzałe być dłużej wspieranym, więc nie chcę poświęcać czasu na budowanie czegoś.
2) IndexedDB: Używa składnicy obiektów (której technicznie już przechowuję obiekty przy użyciu lokalnego interfejsu API pamięci masowej i przechowuję za pomocą JSON). Potencjalnie jest szybszy, ponieważ używa indeksów z backendem SQL Lite. Jest wiele podstawowych kodów do wykonywania prostych zadań, takich jak tworzenie bazy danych, dodawanie do niej, czytanie z niej, iterowanie nad nią. Po prostu chcę zrobić proste zapytanie, takie jak select(xyc, abc).where(abc = 123).limit(20)
, ale zamiast tego trzeba napisać dużo kodu JavaScript, aby to zrobić. W jaki sposób można napisać własny kod, aby robić połączenia między tabelami, dowolne przykłady w dowolnym miejscu?
Znalazłem jeden jQuery plugin, który może uprościć życie. Czy są jakieś inne biblioteki lub inne, które ułatwiają korzystanie z IndexedDB?
Wielkie dzięki!
Wierzę, że WebSQL został porzucony na rzecz IndexedDB ... –
Uważaj na WebSQL, Apple 5.0.1 już nie utrzymuje danych WebSQL. Innymi słowy, spowoduje to okaleczenie lokalnej bazy danych aplikacji. Phonegap ma obejście. https://issues.apache.org/jira/browse/CB-330 – Wytze