var db;
var version = 1;
var request = indexedDB.open("myDB", version);
request.onsuccess(function(e) {db = e.target.result;});
// db.close(); //??? happens async and has no callback
var request2 = indexedDB.open("myDB", ++version);
request.onsuccess = function() { console.log("success"); };
request.onerror = function() { console.log("error"); }; // called if db existed when page was loaded
request.onblocked = function(){console.log("blocked");}; // called on init creation
request.onupgradeneeded = function(){console.log("onupgradeneeded");};
我需要能夠打開數據庫,讀取對象存儲,然後更改數據庫。看起來您只能在每次頁面加載時更改一次數據庫結構。你可以在firefox中打開後改變indexedDB數據庫的結構嗎?
在使用不推薦使用的setVersion方法時,這在Chrome中運行良好。
request.onblocked = function(){db.close(); };在此環境中調用close之後,onupgradeneeded事件被觸發。這應該可以避免某人脫髮。 – anonymous