7

indexedDB を使用して、大量のファイルを BLOB として保存する Web アプリを構築しています。ユーザーがアプリを最大限に使用すると、indexeddb に 15GB ものファイルを保存できます。

IE10 で問題が発生しました。これは、クォータの問題であると強く疑われます。

いくつかのファイルを正常に保存した後、新しい呼び出しstore.put(data, key);が終了することはありません。

基本的に関数は呼び出されますが、成功イベントやエラーイベントは呼び出されません。

IE 10 の IndexedDB フォルダーを調べると、一時ファイル (それぞれ 512 kB) のように見えるファイルが無期限に作成および削除されていることがわかります。

[キャッシュとデータベース] パラメーター ウィンドウを見ると、サイトのデータベースが250 MBに達していることがわかります。

さらに調べてみると、このブログ エントリhttp://msdnrss.thecoderblogs.com/2012/12/using-html5javascript-in-windows-store-apps-data-access-and-storage-mechanism-ii/を見つけました。 Windows ストア アプリのストレージ制限は 250 MB です。

私は Windows ストア メカニズムを使用していませんが、同じ恣意的な制限の犠牲になる可能性があると考えました。

だから、私の質問は:

  • この制限を回避する方法はありますか? ユーザーは 10 MB の制限を超える許可を求められますが、250 MB に達したときにユーザーに何の質問も表示されませんでした。

  • IE10 で 250 MB を超えるデータを保存する他の方法はありますか。

ありがとう、私は手がかりを取ります。

4

1 に答える 1

5

私はあなたができないことを恐れています。ストレージ制限を提供し、より多くのスペースを許可するようユーザーに求めることは、ブラウザー ベンダーの責任です。したがって、最初のオプションは適用できないと思います。

ユーザーが Web サイトが特定の制限を超えることを許可できることは知っています (インターネット オプション > 一般 > 閲覧の履歴 > 設定 > キャッシュとデータベース)。これは、超えることができないハードコードされた制限である可能性があります。

この制限はドメインにバインドされているため、複数のデータベースを作成しても解決できません。唯一の解決策は、複数のドメインに保存することですが、その場合、それらにクロス アクセスすることはできません。また、250MB の制限は、indexeddb API と File API を組み合わせたものになります。

于 2013-02-06T06:42:45.980 に答える