IndexedDB API
IndexedDB is a low-level, asynchronous, NoSQL database in the browser for storing large amounts of structured data. It allows you to persistently store and query key-value pairs, objects, or files.
Features
- Stores structured data, including objects and blobs.
- Works asynchronously for non-blocking operations.
- Supports transactions for data consistency.
Example: Basic CRUD Operations
// Open the database
let request = indexedDB.open("MyDatabase", 1);
request.onupgradeneeded = function (event) {
let db = event.target.result;
// Create an object store
if (!db.objectStoreNames.contains("users")) {
db.createObjectStore("users", { keyPath: "id" });
}
};
request.onsuccess = function (event) {
let db = event.target.result;
// Add data
let transaction = db.transaction("users", "readwrite");
let store = transaction.objectStore("users");
store.add({ id: 1, name: "Alice", age: 25 });
// Read data
let getRequest = store.get(1);
getRequest.onsuccess = function () {
console.log(getRequest.result); // { id: 1, name: "Alice", age: 25 }
};
// Update data
store.put({ id: 1, name: "Alice Updated", age: 26 });
// Delete data
store.delete(1);
};