Какое автономное хранилище HTML5 следует использовать для хранения заметок пользователей в моем веб-приложении?

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

Я узнал, что есть несколько решений для хранения от html5: localStorage, Web SQL DB, Application Cache. Я хотел бы услышать ваш совет, как выбрать из них, учитывая размер, который они предлагают, скорость и удобство использования.


person wong2    schedule 16.06.2011    source источник


Ответы (3)


localStorage — это, безусловно, самое простое решение, и именно его вы должны использовать для этой задачи. Это позволяет вам хранить строки, поэтому, пока ваши данные могут быть представлены в виде строк, они будут работать (обычной практикой является преобразование нестроковых данных в json перед сохранением, а затем синтаксический анализ возвращается).

WebDB — это ваша обычная база данных. Если вам нужно выполнять сложные запросы к вашим данным в нескольких таблицах, вы можете использовать его. Для хранения заметок это было бы излишеством.

Application cache — это нечто совершенно другое, я не понимаю, как вы можете применить его здесь. Он предназначен для кэширования html-страниц и ресурсов.

person serg    schedule 16.06.2011
comment
Локальное хранилище - это (imo) путь. Произвольный предел составляет 5 МБ (некоторые браузеры поддерживают больше, но это минимум). С 5 МБ вы, скорее всего, не исчерпаете пространство с открытым текстом. - person Chuck Callebs; 16.06.2011
comment
Хорошая разбивка, но я не согласен с localStorage для этой задачи. Для произвольного количества заметок простая таблица, содержащая (id, subject, body), может быть более подходящей, чем чтение/запись всего массива в ключ localStorage. - person benzado; 16.06.2011
comment
Я думаю, что localStorage подойдет очень хорошо, почему бы не использовать несколько ключей, по одному для каждой заметки, с объектом JSON в каждом? - person Chris; 16.06.2011
comment
Операции localStorage являются синхронными и могут блокировать пользовательский интерфейс. Как вы думаете, стоит ли хранить данные в indexedDB, если они его поддерживают, а если нет, то в localStorage? (Есть ли основа для поддержки этого?) - person Arvand; 05.04.2013

Локальное хранилище

По сути, это база данных типа «ключ-значение», вы можете использовать ее вместо файлов cookie для хранения настроек или других вариантов использования, для которых вы можете использовать такие компоненты, как memcache на сервере. Я бы лично использовал это для данных, которые необходимо кэшировать.

Кэш приложений

Я предполагаю, что вы имеете в виду кеширование с помощью файла манифеста. Это должно дополнить другие способы использования кэширования. Это позволяет вам кэшировать фактические ресурсы на устройстве пользователя, такие как изображения, файлы javascript и файлы html, чтобы они могли работать в вашем приложении, когда они отключены от Интернета.

База данных веб-SQL

Это база данных, в которой вы хотите хранить пользовательские данные, вы также можете использовать ее для данных, которые вы храните в базе данных sql на сервере.

person TomHastjarjanto    schedule 16.06.2011

В соответствии с этим: https://developer.chrome.com/apps/offline_apps#saving-locally

Упакованные приложения не могут использовать базу данных Web SQL или localStorage. Спецификация WebSQL уже давно устарела, и localStorage обрабатывает данные синхронно (что означает, что это может быть медленным). Storage API обрабатывает данные асинхронно.

IndexedDB — рекомендуемый механизм хранения.

person Dmitry Shvedov    schedule 17.04.2017