IndexedDB native

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2021 Nov 10 6:46
Editor
Edited
Edited
2023 Nov 6 10:37
Refs
Refs
Language
Language

Create

let dbconnect = window.indexedDB.open('cache', 1) let db dbconnect.onupgradeneeded = ev => { console.log('Upgrade DB'); const db = ev.target.result; const store = db.createObjectStore('LasJson', { keyPath: 'id', autoIncrement: true }); store.createIndex('name', 'name', { unique: false }); store.createIndex('data', 'data', { unique: true }); } dbconnect.onsuccess = ev => { console.log('DB-Upgrade needed') db = ev.target.result const transaction = db.transaction('LasJson', 'readwrite') const store = transaction.objectStore('LasJson') const data = [ {name: 'Raptor123', data: {}}, {name: 'Dino2', data: {}} ] data.forEach(el => store.add(el)); transaction.onerror = ev => { console.error('An error has occured!', ev.target.error.message); } }
 
 

Access by index

var transaction = db.transaction(["LasJson"]); var objectStore = transaction.objectStore("LasJson"); var request = objectStore.get(1); request.onerror = function(event) { console.log("Request failed!"); } request.onsuccess = function(event) { if (request.result) { console.log(request.result.name); console.log(request.result.data); } else { console.log("No more entries!"); } };
IndexedDB cursor
 

get by index

var transaction = db.transaction(["LasJson"]) var objectStore = transaction.objectStore("LasJson") var index = objectStore.index("name") index.get("Raptor123").onsuccess = function(event) { console.log(event.target.result.data) }
 

Set data

var transaction = db.transaction(["LasJson"], "readwrite") var objectStore = transaction.objectStore("LasJson") var request = objectStore.add({name: 'asda', data: {}})
IndexedDB onupgradeneeded

Recommendations