0
我正在使用Firefox 21.我编写了下面的代码,以在页面加载时显示indexedDB对象存储的内容。IndexedDB事件不会触发
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;
var request = window.indexedDB.open('mgDB', 1);
request.onerror = function(e) {
alert('error');
};
request.onupgradeneeded = function(e) {
alert('upgradeneeded');
};
request.onsuccess = function(e) {
alert('success');
};
由于知道mgDB尚不存在,我预计将触发upgradeneeded事件。当我使用Firebug调试代码时,发现错误,onsuccess和onupgrade需要空值,所以没有任何事件被触发。当我在没有调试模式的情况下执行代码时,我看到成功事件被解雇。有谁知道为什么会发生?
对于需要删除数据库并在需要测试时重新启动的需求是正确的。让我详细说明我如何进行测试。昨天,当我开始测试的时候,我发现有几次这个事件发生了。然后,在每次测试之前,我手动删除了数据库,并且看到onsuccess事件持续发生。今天早上,我再次通过手动删除数据库并清除Firefox缓存+ cookie进行了测试,并且我看到onupgradeneeded和success事件都是一致的。 –
就是这样,如果升级,onupgradeneeded会先被触发。在这里你可以编辑结构。完成此操作后,打开数据库连接,您可以开始使用它读取,插入,删除...数据。 –