我尝试在indexedDB中打开并保存一些数据。
indexeddb封装在一个webworker中,但每次我尝试在IE11上打开一个事务时,它都会抛出一个“notFoundError”(在FF上运行良好)。
这是我的简化代码:
var dbApi = indexedDB || webkitIndexedDB || mozIndexedDB || msIndexedDB;
var transactionApi = IDBTransaction || webkitIDBTransaction || mozIDBTransaction || msIDBTransaction || {};
var request = dbApi.open('myDB', 1);
var db;
request.onerror = handle_error;
request.onupgradeneeded = handle_upgrade;
request.onsuccess = function(event) {
console.log("Open db ok");
db = event.target.result;
try {
var t = db.transaction(["packet"], (transactionApi.READ_WRITE ? transactionApi.READ_WRITE : 'readwrite')); // Throw error here
t.onsuccess = function() {
var os = t.objectStore("packet");
var cmd = os.put("Some data", -2);
}
}
catch(e) {
console.log(e);
}
};
由于
答案 0 :(得分:0)
我自己回答:在IE11上,我们无法从webworker创建indexeddb。必须从主线程创建Db,并且web worker能够在之后访问它。