5

Chrome でゲーム データを保存するために IndexedDB を使用しています。

平均的なゲームは約 4MB です。いくつかのゲームを保存してから削除した後、開発コンソールの [リソース] タブには、予想どおり、indexedDB が空であると表示されますが、コンテンツ設定の [Cookies and site data] に移動すると、indexedDB として約 12 MB が表示されます。ディスク上のサイズ。

これは、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 はデータをディスクからすぐに削除するのではなく、削除済みとマークするだけです。さらに ~4 メガバイトを IndexedDB に書き込むと、LevelDB は圧縮を行い、古いエントリを含むファイルは削除されます。

Chrome には 50 MB の制限がなく、IndexedDB のユーザー許可を求めることはありません。

この質問は役に立つかもしれません。 Google の Chrome ブラウザーでのインデックス付き DB のストレージ制限は?

于 2013-04-08T02:55:07.527 に答える
1

なぜあなたは心配しているのですか?

OS とブラウザは、ユーザー エクスペリエンスを最適化するために全体的なアプローチを取る場合があります。収納もその一つです。ほとんどの場合、削除するよりも、削除済みとしてマークした方が効率的です。

于 2013-04-07T00:13:37.007 に答える