Examples of how to use IndexedDB
var dbRequest = indexedDB.open("myDatabase", 1);
To open an database, just use open
method with database name. Second argument is version of database.
var dbRequest = indexedDB.open("myDatabase", 1.5);
In above example, 1.5 version will be rounded to 1. So use whole number instead of decimal for DB version.
dbRequest.onerror = function(event) {
//On error event
};
dbRequest.onsuccess = function(event) {
//On success event
};
//This event is triggered when creating a schema
dbRequest.onupgradeneeded = function(event) {
};
var db;
var store;
var index;
dbRequest.onupgradeneeded = function(event) {
db = event.target.result;
//To create Store, find screenshot below for this
store = db.createObjectStore("MyStore", {keyPath: "id"});
index = store.createIndex("Index", ["name"]);
};
After creating store
After creating Index - Name
//Handle error for above DB only
db.onerror = function(event) {
console.log("Error Code: ", event.target.errorCode);
}
var dbTransaction = db.transaction("MyStore", "readwrite");
var myStore = tx.objectStore("MyStore");
//To store data
store.put({id: 1, name: "Gokul", age: 25});
store.put({id: 1, name: "Krishh", age: 20});
var user = store.get(1);
var userName = index.get("Krishh");
user.onsuccess = function() {
console.log(userName.result.id); // 1
console.log(userName.result.name); // Gokul
};
userName.onsuccess = function() {
console.log(userName.result.name); // Krishh
};
//Close the DB, once transaction is done
dbTransaction.oncomplete = function() {
db.close();
};