IndexedDB is a low-level API for storing large amounts of structured data, and it is commonly used in web applications for client-side storage. Here are the basic steps to use IndexedDB in HTML5:
javascriptlet 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 });
};
javascriptconst 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);
};
javascriptconst 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);
};
javascriptconst 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);
};
javascriptconst 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);
};
These examples cover the basic CRUD operations in IndexedDB. Depending on your application, you may need to handle transactions, create multiple object stores, and use more advanced features offered by IndexedDB.