Чтобы использовать автономную базу данных с JavaScript, существует несколько вариантов. Вот несколько методов и примеры кода:
- Локальное хранилище.
Локальное хранилище — это встроенная функция современных веб-браузеров, которая позволяет хранить пары ключ-значение локально на устройстве пользователя. Он обеспечивает простой способ сохранения данных в автономном режиме.
// 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');
- 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);
};
};
- 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.