【发布时间】:2016-02-16 01:14:45
【问题描述】:
我必须承认我对 indexedDB 很陌生
我写了indexedDB的简单代码,如下:
function go() {
var req = window.indexedDB.open("Uploader", 1),
db;
req.onerror = function (e) {
console.log("Error");
};
req.onsuccess = function (e) {
db = e.target.result;
};
req.onupgradeneeded = function (e) {
console.log(db);
db = e.target.result;
var os = db.createObjectStore("Files", { keyPath: "files" });
os.createIndex("text", "text_file", { unique: false });
var trans = db.transaction(["text"], "readwrite");
var objectstore = trans.objectStore("text");
var addreq = objectstore.add("Instructions.js");
addreq.onsuccess = function (e) {
console.log("Success!");
console.dir(e);
};
};
}
它给我的错误是Uncaught InvalidStateError: Failed to execute 'transaction' on 'IDBDatabase': A version change transaction is running.
这是说A version change Transaction is running,但据我研究,版本更改事务是从IDBFactory.open方法进行的,我没有使用过,我已经指定这个事务是readwrite,这个事务是在onupgradeneeded 那为什么会有错误呢?
我必须承认我对 indexedDB 很陌生
【问题讨论】:
标签: javascript transactions indexeddb