The post refer to add object items to the target indexedDB after indexedDB initialization. The add() method of the IDBObjectStore interface is an only insert method. We could use the transaction object to which this object store belongs and add items to.
How to start it?
//***************************************************************
//addData
//{Object}, {db: dbName, objectStore: storeName, version: number, data: data}, the database info include db name, store name , version and object data need to be added.
//**********************************************************************
function addData (data) {
var targetDB = {};
var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;
var nameStore = data.hasOwnProperty("objectStore") ? data.objectStore : "list";
var nameDB = data.hasOwnProperty("db") ? data.db : data;
var dbVersion = data.hasOwnProperty("version") ? data.version : "2";
var dataAy = data.hasOwnProperty("data") ? data.data : "";
if (dataAy === "") {
console.log("No data need to be added.");
return;
}
if ('webkitIndexedDB' in window) {
window.IDBTransaction = window.webkitIDBTransaction;
window.IDBKeyRange = window.webkitIDBKeyRange;
}
targetDB.indexedDB = {};
targetDB.indexedDB.open = function() {
var request = indexedDB.open(nameDB, dbVersion);
request.onsuccess = function(e) {
console.log ("success our DB: " + nameDB + "/" + nameStore + " is open and ready for work");
targetDB.indexedDB.db = request.result;
var transaction = targetDB.indexedDB.db.transaction(["list"], "readwrite");
var objectStore = transaction.objectStore(nameStore);
transaction.oncomplete = function () {console.log("The transaction has finished.")};
transaction.onerror = function () {console.log("The transaction is fail.")};
dataAy.forEach(function (elem, index, ay) {
var rs = objectStore.add(elem);
rs.onsuccess = function(event) {
console.log(elem + " was added.");
}
});
}
request.onerror = function(e) {
}
}
targetDB.indexedDB.open();
}
addData({db:"test", data:[{item_no: 1, item_desc: "1_desc"},{item_no: 2, item_desc: "2_desc"}]});


留言
張貼留言