Автономное хранилище мобильных веб-приложений - PullRequest
0 голосов
/ 13 октября 2011

Я смотрю на написание мобильного веб-приложения с автономной поддержкой и предпочел бы использовать автономные возможности HTML5 вместо чего-то вроде телефонной пробелы.

Требование к приложению будет состоять в том, чтобы оно сохраняло 2 коллекции различных типов объектов (назовем их «Книги» и «Авторы»), которые при подключении к Интернету загружаются с сервера. Если бы не требовалось быть автономным, то я бы использовал некоторые разновидности таблиц SQL или (предпочтительно) БД на основе документов для хранения этих элементов, но после некоторого базового исследования я не нашел ничего, что кажется «правильным» ", который работает в автономном режиме.

Мой вопрос: какова стратегия best для хранения этих предметов? Что я учел до сих пор:

HTML5 localStorage - кажется, имеет относительно широкую поддержку, но ограничен парами ключ-значение, что может означать немного неприятную структуру данных - возможно, с ключом total-authors, а затем с последовательностью author-1....author-n пары ключевой документ. Мне это кажется неправильным - как будто я пытаюсь обойти цель хранилища.

CouchDb - Я много работал с CouchDb в прошлом, поэтому хотел бы использовать его или его эквивалент, но для «правильного» CouchDb потребовалось бы родное приложение (с которым у меня нет опыта ), и 2 эквивалента в браузере, которые я видел, не совсем помогают: шезлонг , кажется, не добавляет ничего к опции localStorage и BrowserCouch похоже, в последнее время не слишком активно (что всегда вызывает у меня настороженность).

WebDb - Похоже, это было бы идеально ... за исключением того, что оно официально прекращено и не выглядит широко поддерживаемым

Механизмы - Снято с производства

IndexedDB - Ограниченная поддержка браузера (по крайней мере, согласно caniuse)

Я убежден, что должно быть что-то , которое делает то, что я хочу, и мне просто удалось как-то пропустить это. Кто-нибудь может подсказать, как это должно быть сделано (в отличие от того, как это можно сделать )?

1 Ответ

2 голосов
/ 14 октября 2011

Насколько я знаю, простого браузера не существует; вам придется либо использовать localStorage, либо разрабатывать как для WebDB, так и для IndexedDB.

Но если вы не нативный, вы можете использовать слой абстракции, например lawnchair (по умолчанию использует localStorage, плагины доступны для indexeddb, webdb, ...) или тот, кого SO-пользователь написал для Gatapia picnet (использует indexeddb & webdb & gears), который вы можете найти на github .

...