Как создать локальную автономную базу данных

Я делаю приложение списка дел с HTML, CSS и JavaScript, и я считаю, что лучшим способом для хранения данных будет локальная база данных. Я знаю, как использовать localStorage и sessionStorage, а также знаю, как использовать базу данных MySQL. Однако это приложение должно иметь возможность запускать в автономном режиме и хранить свои данные в автономном режиме.
Есть ли способ сделать это с помощью только HTML и JavaScript?


Отвечая на комментарии:

"Вы сказали, что знаете, как использовать localStorage... так что, похоже, проблема?"

@Lior Все, что я знаю о localStorage, это то, что вы можете сохранить единственный результат в качестве переменной, тогда как я хочу сохранить строку с разными столбцами, содержащими данные об объекте. Однако может ли localStorage удерживать объект, и если да, то на него ссылаются обычные обозначения объектов?

Любая реализация, вероятно, будет зависеть от того, какой браузер предпочитают использовать ваши пользователи.

@paul Я думаю, что хром будет самым популярным.


Хорошо, я хотел бы уточнить, что то, о чем я спрашивал, было действительно. Как я могу сделать это с помощью JavaScript и HTML, а не есть ли способ, которым я мог бы это сделать, только с помощью HTML и JavaScript?. В принципе, мне нужен тип базы данных SQL, который сохранил бы его содержимое на пользовательской машине, а не в Интернете.

То, что решило мою проблему, было использование WebDB или WEBSQL (я думаю, что это было вызвано чем-то вроде этого).

Ответ 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 поддерживается этим парнем прямо здесь:).