IndexedDB は、大量の構造化データを保存するための低レベル API であり、Web アプリケーションでクライアント側のストレージとしてよく使用されます。 HTML5 で IndexedDB を使用する基本的な手順は次のとおりです。
JavaScript let db;
const request = window.indexedDB.open('YourDatabaseName', 1);
request.onerror = function (event) {
console.log('Database error: ' + event.target.errorCode);
};
request.onsuccess = function (event) {
db = event.target.result;
console.log('Database opened successfully');
};
request.onupgradeneeded = function (event) {
// This is called only if the database version is increased
const db = event.target.result;
const objectStore = db.createObjectStore('YourObjectName', { keyPath: 'id', autoIncrement: true });
// You can define indexes here if needed
objectStore.createIndex('indexName', 'propertyName', { unique: false });
};
JavaScript const transaction = db.transaction(['YourObjectName'], 'readwrite');
const objectStore = transaction.objectStore('YourObjectName');
const data = { id: 1, name: 'John Doe', age: 25 };
const request = objectStore.add(data);
request.onsuccess = function (event) {
console.log('Data added successfully');
};
request.onerror = function (event) {
console.log('Error adding data: ', event.target.error);
};
JavaScript const transaction = db.transaction(['YourObjectName'], 'readonly');
const objectStore = transaction.objectStore('YourObjectName');
const request = objectStore.get(1); // Get data with ID 1
request.onsuccess = function (event) {
const data = event.target.result;
if (data) {
console.log('Retrieved data:', data);
} else {
console.log('No data found with the specified ID');
}
};
request.onerror = function (event) {
console.log('Error retrieving data: ', event.target.error);
};
JavaScript const transaction = db.transaction(['YourObjectName'], 'readwrite');
const objectStore = transaction.objectStore('YourObjectName');
const request = objectStore.put({ id: 1, name: 'Updated Name', age: 30 });
request.onsuccess = function (event) {
console.log('Data updated successfully');
};
request.onerror = function (event) {
console.log('Error updating data: ', event.target.error);
};
JavaScript const transaction = db.transaction(['YourObjectName'], 'readwrite');
const objectStore = transaction.objectStore('YourObjectName');
const request = objectStore.delete(1); // Delete data with ID 1
request.onsuccess = function (event) {
console.log('Data deleted successfully');
};
request.onerror = function (event) {
console.log('Error deleting data: ', event.target.error);
};
これらの例では、IndexedDB での基本的な CRUD 操作を説明します。アプリケーションによっては、トランザクションの処理、複数のオブジェクト ストアの作成、IndexedDB が提供するより高度な機能の使用が必要になる場合があります。