以下是我打開indexedDB的Javascript代碼。我已經在Firefox 21中成功地測試了幾次代碼,但現在我看到e.target.error.name中的indexedDB.open()函數返回AbortError。Indexeddb AbortError
var openDB = function(dbCallBack) {
var openDB = function(dbCallBack) {
window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window.IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;
request = window.indexedDB.open('mgDB');
request.onerror = function(e) {
alert('Error: ' + e.target.error.name + ': Failed to open the database');
dbCallBack(false, false);
};
request.onupgradeneeded = function(e) {
dbCallBack(true, false);
};
request.onsuccess = function(e) {
db = e.target.result;
if (db.objectStoreNames.length == 0) {
dbCallBack(true, true);
} else {
dbCallBack(true, false);
}
};
};
};
下面介紹如何調用openDB()函數。對於dbCallBack函數的代碼是內嵌在下面:
if (!db) {
var dbOpenSuccess;
openDB(function(dbOpenSuccess, emptyTableMsg) {
if (emptyTableMsg) {
displayEmptyTableMsg();
} else if (dbOpenSuccess) {
displayTableContents();
}
});
}
注:我曾嘗試清除瀏覽器緩存和從文件夾C手動刪除索引資料:\用戶{用戶ID} \應用程序數據\漫遊\ Mozilla的\火狐\ Profiles文件然後重新運行測試。我在http://nparashuram.com/IndexedDB上成功運行了相同的代碼。什麼可能是錯的?
你可以在doCallBack函數中顯示你正在做什麼嗎? –
我已經編輯了上面的問題來回答你的問題。 –
同樣,請注意,dbCallBack函數之前已成功運行。 –