12

http://arty.name/localstorage.htmlによると、大量のデータ (800GB など) を格納するために localStorage を使用したいのですが、Firefox を使用しているため、localStorage のサイズとキャッシュ サイズも変更しました。なのでサイズは問題ありません。ただし、次のような jquery を記述します。

 $("a[href]").each(function(){
    $(this).click(function(event){
       localStorage.test += "somenewinformation";
      ...

この localStorage.test に既に 400GB のような大量のデータがある場合、情報の保存手順は非常に遅くなります。リンクをクリックすると、jquery は localStorage.test への新しい情報の追加が完了するのを待ちますか、それとも次のページに移動して localStorage.test の情報がすべて失われるか、localStorage.test が古いままになりますか価値?私が理解していないのは、この保存をバックグラウンドで行うために新しいスレッドが生成されるかどうか、および途中でブラウザを閉じるとそれに影響するかどうかです。

乱雑な説明で申し訳ありませんが、事前に感謝します!

4

2 に答える 2

16

できません!通常の制限は 5 mb です。

Opera などの一部のブラウザーではサイズを調整できますが、これは純粋にブラウザーに依存しており、ユーザーが開始したアクションであり、プログラム可能なものではありません。

localStorageできたとしても、は文字列しか格納できないので、それ以外のものは最初に文字列化する必要があることを覚えておいてください。これがキー/値のストレージ配列であることに加えて、最終的にパフォーマンスが大幅に低下します。

大容量のストレージが必要な場合は、代わりに File API を検討してください。これは大きなファイル (Blob) で動作するように作成されており、何でも Blob として保存できます。

800 Gb はサイズが大きく、File API はファイル システムと同程度の速度でしか機能しません (せいぜい、サンドボックス化されているため、つまり、純粋なファイル システムではないため、少し遅くなる可能性があります)。

ファイル システム API の詳細 (注: 2014 年 4 月時点で廃止):
http://www.w3.org/TR/file-system-api/

チュートリアル:
http://www.html5rocks.com/en/tutorials/file/dndfiles/

ブロブ:
https://developer.mozilla.org/en-US/docs/Web/API/Blob

更新ファイルシステム API が廃止されたため、基本的に 2 つのオプションしか残っていません (データをサーバーに保存する以外に):

  • インデックス付きデータベース API別名Indexed DB(推奨)
  • Web SQL (非推奨ですが、Safari などのブラウザーでは引き続きサポートされています)

また、これらは最初はブラウザによってサイズが制限されています。ユーザーが受け入れるように求められるより大きな見積もりを要求することは可能です。

この API の詳細については、
http ://www.w3.org/TR/IndexedDB/ を参照してください。

于 2013-06-24T05:10:33.230 に答える