- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 IndexedDB 概念非常陌生。我正在尝试在 IndexedDB 中存储电影列表并检索它。但由于某种原因,当我尝试检索它时,chrome 浏览器中出现 DOM IDBDatabase Exception 11。我尝试使用简单的警报来检索它。我还尝试通过将警报放入 onComplete 事件中来检索数据,但这似乎也失败了。有人可以让我知道我做错了什么吗?下面是我的代码。
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]);
}
};
}
};
关于javascript - 即使使用 oncomplete 后,IndexedDB DOM IDBDatabase 异常 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304562/
我有一个 SPA 应用程序,它将对 IndexedDB 进行多次读取/写入。 打开数据库是一个带有回调的异步操作: var db; var request = window.indexedDB.ope
我一直在关注页面Using IndexedDB . 加载页面时,我创建/加载数据库。 window.App = window.App || {}; App.db = window.indexedDB.
为什么会出现错误? 我的代码: var idb = window.indexedDB || // Use the standard DB API window.mozIn
我正在使用最新的谷歌浏览器..我正在尝试实现 HTML5 indexedDB 示例。 AIM 是在页面加载数据并在其中存储数据时创建数据库。如果有人有的话,请发布任何示例工作示例。我尝试了这段代码,但
我在使用 indexeddb 时遇到问题 - 我正在使用此方法打开和设置数据库 DBService.prototype.open = function (dbName, entity, cb) {
有人可以告诉我我哪里出了问题吗? window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedD
这是我第一次使用 indexDB,我已经创建了一个数据库,现在正在尝试向其中添加内容。但我收到以下错误。 Uncaught NotFoundError: Failed to execute 'tran
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
以下代码: request=window.webkitIndexedDB.open('tileStore'); 产生错误请求:异常 11。打开适用于其他数据库。此外, request=window.w
我的对象结构是这样的: var test={ "id":"A", "ChanName":"Discovery", "LCN":10 };
代码如下: var transaction = db.transaction(["main"], IDBTransaction.READ_WRITE); var store = transaction
我在使用 IndexedDB 的应用程序上收到此警告。 “IDBDatabase.transaction 中不推荐使用数字事务模式。使用“readonly”或“readwrite”” 当我第一次编写应
代码如下: var transaction = db.transaction(["main"], IDBTransaction.READ_WRITE); var store = transaction
我对 IndexedDB 概念非常陌生。我正在尝试在 IndexedDB 中存储电影列表并检索它。但由于某种原因,当我尝试检索它时,chrome 浏览器中出现 DOM IDBDatabase Exce
我尝试使用 Indexed DB API 进行一些测试。 我的代码如下: var db = null; const dbName = "contactsD
自 2020 年 8 月以来我一直有问题,但我仍然不知道如何重现, 我正在使用 dfahlander/Dexie.js使用浏览器索引数据库。 这是我如何使用 dexie 的示例:- import db
我在创建 objectStore 时已成功添加以下内容: { name: "John Doe", age: 21 } 我使用了以下选项: { keyPath: "id", autoIncrement:
我必须承认我是 indexedDB 的新手 我写了一段indexedDB的简单代码,如下: function go() { var req = window.indexedDB.open("Up
@Josh 已经回答了一个关于填充 IndexedDB ObjectStores 时的错误消息的类似问题: Failed to execute 'transaction' on 'IDBDatabas
我是一名优秀的程序员,十分优秀!