indexedDB.deleteDatabase()不删除?

时间:2015-04-09 20:36:07

标签: javascript indexeddb

Google Chrome会为我自己的网站列出两个索引数据库:

Ursprung:   http://www.example.com/
Größe auf Datenträger:  5,5 KB
Zuletzt geändert am:    Donnerstag, 9. April 2015 22:23:53

Ursprung:   https://www.example.com/
Größe auf Datenträger:  1.048 B
Zuletzt geändert am:    Dienstag, 3. März 2015 22:49:21

关于我的研究,这是通过indexedDB得出的。由于我不知道是谁设置了这些数据库以及他们拥有的名称,我尝试find the names,之后delete them如下:

<script>
indexedDB.webkitGetDatabaseNames().onsuccess = function(sender, args) {
    console.log(sender.target.result);
    var req = indexedDB.deleteDatabase(sender.target.result);
    req.onsuccess = function () {
        console.log("Deleted database successfully");
    };
    req.onerror = function () {
        console.log("Couldn't delete database");
    };
    req.onblocked = function () {
        console.log("Couldn't delete database due to the operation being blocked");
    };
};
</script>

控制台显示Deleted database successfully,但Google Chrome网站数据中的条目仍然存在。它只会改变大小(5到10 kB之间)和时间戳的变化。 console.log的{​​{1}}已退回:

sender.target.result

有什么问题,如何通过Javascript删除这两个数据库?

更新1
现在我尝试自己创建一个新数据库,找出我需要做什么才能再次删除它。最后这个工作(一步到多个数据库):

DOMStringList {length: 0, item: function, contains: function}length: 0__proto__: DOMStringList
...

但是经过所有这些测试后,Google Chrome中的索引数据库文件大小增加到了105 KB:

<script>
// delete all databases
window.indexedDB.webkitGetDatabaseNames().onsuccess = function(sender, args) {
    console.log(sender.target.result);
    for (var key in sender.target.result) {
        window.indexedDB.deleteDatabase(sender.target.result[ key ]);
    }
};
// create a database
//window.indexedDB.open("testDB", 1);
</script>

似乎浏览器保留了我删除它的过去的最大使用数据库大小。或者是否可以恢复数据?

下一个问题是为什么第二个数据库仍然没有改变。这是另一种类型的数据库吗?我真的觉得很难控制通过我的网站创建并保存在我的访问者浏览器中的东西。

1 个答案:

答案 0 :(得分:0)

  

Google Chrome浏览器为我自己的网站列出了两个索引数据库

Chrome在哪里做到了?

我怀疑你所看到的不是IndexedDB数据库。