2013-05-29 4 views
11

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


В ответ на замечания:

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

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

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

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


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

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

+0

Вы сказали, что знаете, как использовать 'localStorage' ... так что, по-видимому, проблема? –

+0

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

+0

С помощью 'localStorage' вы не можете естественным образом сохранить объект, но способ обойти это с помощью' JSON.stringify' для его сохранения и 'JSON.parse' для его получения – Ian

ответ

8

Я уже на 3 года опоздал с ответом на это, но, учитывая, что в то время не было фактического обсуждения доступных опций, и что база данных, в которой OP в конечном итоге выбрала is now deprecated, я подумал, что я бы выбрал свой два цента по этому вопросу.

Во-первых, необходимо учитывать, нужна ли на самом деле клиентская база данных. Подробнее ...

  • Нужны ли вам явные или неявные отношения между вашими элементами данных?
  • Как насчет возможности запроса по указанным элементам?
  • или более 5 MB в космосе?

Если вы ответили «нет» на все вышеперечисленное, перейдите к локальному хранилищу и спасите себя от головных болей, которые являются 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 поддерживается этим парнем права Вот :) .

Смежные вопросы