Автономная база данных с JavaScript: методы и примеры кода

Чтобы использовать автономную базу данных с JavaScript, существует несколько вариантов. Вот несколько методов и примеры кода:

  1. Локальное хранилище.
    Локальное хранилище — это встроенная функция современных веб-браузеров, которая позволяет хранить пары ключ-значение локально на устройстве пользователя. Он обеспечивает простой способ сохранения данных в автономном режиме.
// Storing data in local storage
localStorage.setItem('key', 'value');
// Retrieving data from local storage
const value = localStorage.getItem('key');
// Removing data from local storage
localStorage.removeItem('key');
  1. IndexedDB:
    IndexedDB — это низкоуровневый API JavaScript для хранения на стороне клиента значительных объемов структурированных данных. Он обеспечивает более продвинутый и мощный способ хранения и извлечения данных в автономном режиме.
// Open a database
const request = indexedDB.open('myDatabase', 1);
// Create an object store
request.onupgradeneeded = function(event) {
  const db = event.target.result;
  const objectStore = db.createObjectStore('myObjectStore', { keyPath: 'id' });
};
// Add data to the object store
request.onsuccess = function(event) {
  const db = event.target.result;
  const transaction = db.transaction('myObjectStore', 'readwrite');
  const objectStore = transaction.objectStore('myObjectStore');

  objectStore.add({ id: 1, name: 'John Doe' });
};
// Retrieve data from the object store
request.onsuccess = function(event) {
  const db = event.target.result;
  const transaction = db.transaction('myObjectStore', 'readonly');
  const objectStore = transaction.objectStore('myObjectStore');

  const request = objectStore.get(1);

  request.onsuccess = function(event) {
    const data = event.target.result;
    console.log(data);
  };
};
  1. WebSQL (устарело):
    WebSQL — это устаревшая технология веб-баз данных, которая предоставляет SQL-подобный интерфейс для хранения и извлечения данных в автономном режиме. Хотя это больше не рекомендуется, оно по-прежнему поддерживается в некоторых браузерах.
// Open a database
const db = openDatabase('myDatabase', '1.0', 'My Database', 2 * 1024 * 1024);
// Create a table
db.transaction(function(tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS myTable (id unique, name)');
});
// Insert data into the table
db.transaction(function(tx) {
  tx.executeSql('INSERT INTO myTable (id, name) VALUES (?, ?)', [1, 'John Doe']);
});
// Retrieve data from the table
db.transaction(function(tx) {
  tx.executeSql('SELECT * FROM myTable', [], function(tx, result) {
    const rows = result.rows;
    for (let i = 0; i < rows.length; i++) {
      console.log(rows.item(i));
    }
  });
});

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