Ответ 1
Мне уже 3 года поздно ответить на этот вопрос, но, учитывая, что в то время не было фактического обсуждения доступных опций, и что база данных, в которой OP закончила выбор теперь устарел, я решил, что брошу в свои два цента по этому вопросу.
Во-первых, нужно учитывать, нужна ли на самом деле клиентская база данных. Более конкретно...
- Вам нужны явные или неявные отношения между вашими данными?
- Как насчет возможности запроса по указанным элементам?
- Или более 5 MB в космосе?
Если вы ответили "нет" на все вышеперечисленное, перейдите к localStorage и сохраните себя от головных болей, которые являются API-интерфейсами WebSQL и IndexedDB. Ну, может быть, только последняя головная боль, поскольку первая, как упоминалось ранее, устарела.
В противном случае IndexedDB является единственным вариантом, поскольку исходные базы данных на стороне клиента идут, учитывая, что это единственный, который остается на дорожке стандартов W3C.
Обратите внимание на BakedGoods, если вы хотите использовать какое-либо из этих средств и многое другое, без необходимости писать низкоуровневый код операции хранения. С его помощью размещение данных в первой встречной базе данных, которая поддерживается на клиенте, например, выполняется так же, как:
bakedGoods.set({
data: [{key: "key1", value: "val1"}, {key: "key2", value: "val2"}],
storageTypes: ["indexedDB", "webSQL"],
//Will be polyfilled with defaults for equivalent database structures
optionsObj: {conductDisjointly: false},
complete: function(byStorageTypeStoredKeysObj, byStorageTypeErrorObj){}
});
О, и для полной прозрачности, BakedGoods поддерживается этим парнем прямо здесь:).