gpt4 book ai didi

javascript - 尝试创建事务时 DOM IDBDatabase 异常 11

转载 作者:行者123 更新时间:2023-11-30 13:15:54 25 4
gpt4 key购买 nike

我正在使用最新的谷歌浏览器..我正在尝试实现 HTML5 indexedDB 示例。 AIM 是在页面加载数据并在其中存储数据时创建数据库。如果有人有的话,请发布任何示例工作示例。我尝试了这段代码,但在我尝试创建事务时出现了 Uncaught Error: InvalidStateError: DOM IDBDatabase Exception 11。这是代码片段..

var idbRequest;
var idb;
$(document).ready(function(){
//ini----------------------
var peopleData = [
{ name: "John Dow", email: "john@company.com" },
{ name: "Don Dow", email: "don@company.com" }
];
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
//create database.............
if (window.indexedDB) {
idbRequest = window.indexedDB.open("StoreDB");
idbRequest.onsuccess = function(e) {
idb = idbRequest.result || e.result; // FF4 requires e.result. IDBRequest.request isn't set :(
/*idbRequest.onerror = function (evt) {
console.log("IndexedDB error: " + evt.target.errorCode);
};*/
var v = '2.0';
var setVrequest = idb.setVersion(v);
setVrequest.onsuccess = function(e) {
if(idb.objectStoreNames.contains("Stores")) {
alert("ObjectStore is already created.");
return false;
}
var objectstore = idb.createObjectStore("Stores");
alert("Object store Created.");
if (!idb.objectStoreNames.contains('Stores')) {
alert("Object store doesn't exist.");
return;
}else{
alert("Object store contain 'store'");
}

// Create a transaction that locks the world.
var trans = idb.transaction(["Stores"],"readwrite");//getting exception on this line..
trans.oncomplete = function(){
console.log("Success transaction");
};
var objectStore = trans.objectStore("Stores");
var request = objectStore.put(
1,
"wsdsdsd");
alert("data added");
};






};


}
});

最佳答案

解决了..我遇到了错误,因为我们无法在版本更改正在进行时创建事务。这是最终的工作答案。

var idbRequest;
var idb;
$(document).ready(function(){
//ini----------------------

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange;
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction;
//create database.............
if (window.indexedDB) {
idbRequest = window.indexedDB.open("DB");
idbRequest.onsuccess = function(e) {
idb = idbRequest.result || e.result; // FF4 requires e.result. IDBRequest.request isn't set :(
/*idbRequest.onerror = function (evt) {
console.log("IndexedDB error: " + evt.target.errorCode);
};*/
var v = '2.0';
var setVrequest = idb.setVersion(v);
setVrequest.onsuccess = function(e) {
if(idb.objectStoreNames.contains("Stores")) {
alert("ObjectStore is already created.");
var vertrans = setVrequest.result;
vertrans.oncomplete = doStuff;
return false;
}
var objectstore = idb.createObjectStore("Stores");
alert("Object store Created.");
if (!idb.objectStoreNames.contains('Stores')) {
alert("Object stores doesn't exist.");
return;
}else{
alert("Object store contain 'stores'");
}
var vertrans = setVrequest.result;
vertrans.oncomplete = doStuff;
};

};


}
});

function doStuff(){
// Create a transaction that locks the world.
var trans = '';

trans = idb.transaction(['Stores'],'readwrite');

var objectStore = trans.objectStore('Stores');
var request = objectStore.put(
1,
"wsdsdsd");
alert("data added");
trans.oncomplete = function(){
console.log("Success transaction");
};
}

关于javascript - 尝试创建事务时 DOM IDBDatabase 异常 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12035125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com