NotFoundError:DOM IDBDatabase在indexedDB中创建事务时发生异常8
NotFoundError: DOM IDBDatabase Exception 8 when creating transaction in indexedDB
我尝试使用Indexed DB API进行一些测试。
我的代码如下:
<html>
<head>
<script type="text/javascript">
var db = null;
const dbName = "contactsDB";
const dbVersion = 1;
const storeName = "contacts";
const contacts = [
{id : 1, firstname : 'F1', lastname : 'L1'},
{id : 2, firstname : 'F2', lastname : 'L2'}
];
function init() {
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
openDB();
}
function openDB() {
var request = window.indexedDB.open(dbName, dbVersion);
request.onerror = function (e) {
alert('DB connexion error : ' + e.target.errorCode);
};
request.onsuccess = function (e) {
alert('DB connexion success');
// get db instance
db = e.target.result;
};
// seulement implemente sur les browsers recents
request.onupgradeneeded = function (e) {
// updgrade DB
var db = e.target.result;
if (db.version != dbVersion) {
// create object store
var objectStore = db.createObjectStore(storeName, {keyPath : "id"});
// create index to search contacts by lastname.
// Duplicates possible ==> so no unique index
objectStore.createIndex("lastname", "lastname", {unique : false});
}
};
}
function addToDB() {
// get object store in tx
var objectStore = getObjectStore(storeName, "readwrite");
// stores values
for (var c in contacts) {
var request = objectStore.add(contacts[c]);
request.onsuccess = function (e) {
alert('Add success for ' + e.target.result);
}
}
}
function getObjectStore(store_name, mode) {
var tx = db.transaction(store_name, mode);
return tx.objectStore(store_name);
}
</script>
</head>
<body onload="init();">
<input type="button" onclick="addToDB();" value="Add" />
</body>
</html>
我有一个web服务器来使用本地主机域的页面。
当我用Firefox 22.0加载页面时,DB打开成功。然而,当我点击Add按钮并调用addToDB函数时,我在Firefox控制台中出现了以下错误:
NotFoundError:操作失败,因为找不到请求的数据库对象。例如,对象存储不存在,但正在打开
var tx=db.transaction(store_name,mode);
我还在Chrome 24上做了同样的测试。当我点击Add按钮时,错误来自同一行var tx=db.transaction(store_name,mode);在Chrome控制台上,我有以下错误:
未捕获错误:NotFoundError:DOM IDBDatabase异常8
通过搜索有关该异常的更多信息,我找到了以下链接:
https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabaseException?redirectlocale=en-美国&redirectslug=IndexedDB%2FDBDatabaseException
在该链接中,它被标记为异常8:例如,通过调用IDBTransaction.abort,请求被中止。
所以,我的问题是,我不知道为什么我的请求在那个时候被中止了。
有人想帮忙解决这个问题吗?
谢谢。
Sylvain
由于if (db.version != dbVersion)
检查,没有创建对象存储。该区块将永远不会被输入。只要去掉复选框,改为const dbVersion = 2;
,一切都会好起来的。
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- document.applet.method在Mounatin Lion上抛出safari 6+JDK7异常
- 为什么浏览器没有为语法错误抛出异常
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- node.js和express中的异常处理
- 派生进程的stdout在管道传输时工作异常
- NodeJS和pg promise,捕获PostgreSQL异常
- 贝宝赢了't将沙箱事务数据发送到IPN
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- 显示引导弹出操作异常的逻辑
- 调用谷歌地图路线服务时未捕获的异常
- web配置http到https重定向异常
- 转换异常时间&Datestring到JavaScript日期
- 为什么在python中使用异常比javascript更容易接受
- PHP REST服务抛出异常——希望避免控制台错误
- JS异常:animate不是一个函数
- 在蓝鸟中处理异常
- 尝试创建事务时出现DOM IDBDatabase异常11
- NotFoundError:DOM IDBDatabase在indexedDB中创建事务时发生异常8
- Html5-WebSql事务的行为异常,并发出警报