Javascript IndexedDB DOM IDBDatabase异常11即使在使用oncomplete之后
我对IndexedDB概念非常陌生。我正在尝试将电影列表存储在IndexedDB中并检索它。但由于某种原因,当我试图检索它时,chrome浏览器中出现了DOM IDBDatabase异常11。我尝试使用一个简单的警报来检索它。我还试图通过将警报放在onComplete事件中来检索数据,但这似乎也是一个失败。有人能告诉我我做错了什么吗。下面是我的代码Javascript IndexedDB DOM IDBDatabase异常11即使在使用oncomplete之后,javascript,html,google-chrome,indexeddb,Javascript,Html,Google Chrome,Indexeddb,我对IndexedDB概念非常陌生。我正在尝试将电影列表存储在IndexedDB中并检索它。但由于某种原因,当我试图检索它时,chrome浏览器中出现了DOM IDBDatabase异常11。我尝试使用一个简单的警报来检索它。我还试图通过将警报放在onComplete事件中来检索数据,但这似乎也是一个失败。有人能告诉我我做错了什么吗。下面是我的代码 const dbName = "movies"; var request = indexedDB.open(dbName, 1); request.
const dbName = "movies";
var request = indexedDB.open(dbName, 1);
request.onerror = function(event) {
alert("Seems like there is a kryptonite nearby.... Please Check back later");
};
request.onsuccess = function(event) {
var db = event.target.result;
var transaction = db.transaction(["movies"],"readwrite");
var objectStore = transaction.objectStore("movies");
var request1 = objectStore.get("1");
request1.result.oncomplete=function(){
alert("The movie is"+request1.result.name);//This is the place where i get the error
}
};
request.onupgradeneeded = function(event) {
db = event.target.result;
var objectStore = db.createObjectStore("movies", { keyPath: "movieid" });
objectStore.createIndex("name", "name", { unique: false });
objectStore.createIndex("runtime", "runtime", { unique: false });
for (var i in movieDataToStore) {
objectStore.add(movieDataToStore[i]);
}};
我仍然不知道上一个程序出了什么问题。我重新编写了上面的程序,效果很好。这是代码。希望这有助于解决这个问题的任何人。另外,如果有人知道上次出了什么问题,请分享你的想法
var db; //database will be stored in this value when success is called
var movieDataToStore = [{ movieid: "1", name: "Keep my Storage Local", runtime:"60"},
{ movieid: "2", name: "Rich Internet Conversations", runtime:"45"},
{ movieid: "3", name: "Applications of the Rich and Famous", runtime:"30"},
{ movieid: "4", name: "All Jump All eXtreme", runtime:"45"}];
window.query = function() {
db.transaction("movies").objectStore("movies").get("1").onsuccess = function(event) {
alert("QUERY: CThe first movie is" + event.target.result.name);
};};
window.onload = function() {
if (!window.indexedDB) {
window.alert("Your browser doesn't support a stable version of IndexedDB. Such and such feature will not be available.")
}
else{
var request = indexedDB.open("movies", 1);
request.onerror = function(event) {
alert("Seems like there is a kryptonite nearby.... Please Check back later");
};
request.onsuccess = function(event) {
db = this.result;
query();
};
request.onupgradeneeded = function(event) {
var db = event.target.result;
if(db.objectStoreNames.contains("movies")) {
db.deleteObjectStore("movies");
}
var objectStore = db.createObjectStore("movies", { keyPath: "movieid"});
objectStore.createIndex("name", "name", { unique: false });
objectStore.createIndex("runtime", "runtime", { unique: false });
for (var i in movieDataToStore) {
objectStore.add(movieDataToStore[i]);
}
};
}
};