5

我正在使用 IndexedDB 在 Chrome 中保存游戏数据。

一个普通的游戏大约是 4MB。保存一些游戏,然后删除它们后,开发控制台的“资源”选项卡显示我的 indexedDB 为空,正如预期的那样,但如果我进入内容设置“Cookie 和站点数据”,它显示的 indexedDB 大约为 12MB磁盘上的大小。

这是刷新甚至重新启动Chrome 之后。以下是我的删除代码,当我删除并且对旧数据的查询没有返回任何内容时,我得到了成功,正如预期的那样。

database.indexedDB.deleteGame = function(nameIn){
    var db = database.indexedDB.db;
    var trans = db.transaction(["saves"], "readwrite");
    var store = trans.objectStore("saves");
    var wipeSlate = store.delete(nameIn);
    wipeSlate.onsuccess = function(e) {
        console.log("Old game wiped");
    };
    wipeSlate.onerror = function(e) {
        console.log("I don't think the old game existed..." + e);
    };
};

我已经检查了以下问题(搜索结果也没有显示任何有希望的东西):

但是他们都没有处理我的问题,非常感谢任何和所有的帮助。

4

2 回答 2

5

Chrome 不会立即从磁盘中删除数据,它只是被标记为已删除。如果您向 IndexedDB 再写入约 4 兆字节,LevelDB 将进行压缩,并且包含旧条目的文件将被删除。

Chrome 没有 50mb 的限制,并且永远不会请求用户对 IndexedDB 的许可。

这个问题可能会有所帮助。 Google Chrome 浏览器上的索引数据库的存储限制是多少?

于 2013-04-08T02:55:07.527 回答
1

你为什么担心?

操作系统和浏览器可能会采取整体方法来优化用户体验。存储就是其中之一。在大多数情况下,将它们标记为已删除比删除更有效。

于 2013-04-07T00:13:37.007 回答