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); };