80

キャッシュの動作に関する記事を見つけたので、それほど違いはないと思いますが、確認したかったのです。

ほとんどのブラウザーにはlocalStorage用に5MB(ギブまたはテイク)があることを読みましたが、ブラウザーの動作はどうなるのか興味がありましたか?

私はすべてのブラウザの動作が異なることを理解していますが、私は主にSafari、Chrome、Firefoxに興味があります(これらは私がブラウザと見なしているものです)。

  • 上記のブラウザは私のウェブサイトからデータを削除しますか、それとも「最も古い」またはそのようなものを選択しますか?
  • そのような場合、私のアイテムは保存されますか?

そして最も重要なのは:

  • ウェブサイトでlocalStorageを「悪用」して、それをすべて使い果たしようとしているとしましょう。同じページで、localStorageをいっぱいにして、さらに節約しようとしています。警告が表示されますか?getItemこれが発生したときに戻るのでしょnullうか、それとも何らかの形でメモリに保存されるのでしょうか。

  • サイズよりも大きいアイテムを保存しようとするとどうなりlocalStorageますか?

回答済み: 回答はここにあります

  • 伝えられるところでは同じであるはずのsessionStorageから同じ正確な動作を期待できますか?

私はこれがたくさんの質問であることを知っています、しかし私は主題に関連しているすべてを理解しようとしています、私はあなたが答えることができる質問のどんな部分にも感謝するでしょう。

4

1 に答える 1

104

まず、いくつかの有用なリソース:

あなたの質問に答えて、デスクトップブラウザはドメインあたり5MBの初期最大localStorageクォータを持つ傾向があります。これは、場合によってはユーザーが調整できます。

  • Opera:opera:config->localStorageのドメインクォータ
  • Firefox:about:config-> dom.storage.default_quota

Chromeでは、ユーザーがこの設定を調整する方法はないようですが、Operaと同様に、localStorageデータはデベロッパーツールを使用してドメインごとに直接編集できます。

localStorageにデータを保存しようとすると、ブラウザは現在のドメインに十分な空き容量があるかどうかを確認します。そうであれば:

  • データは保存され、同じキーがすでに存在する場合は値が上書きされます。

いいえの場合:

  • データは保存されず、既存のデータは上書きされません。
  • QUOTA_EXCEEDED_ERR例外がスローされます。

この場合、getItem(key)は、正常に保存された最後の値を返します(存在する場合)。

(Operaは、現在のドメインのストレージスペースを増やすことをユーザーに選択できるダイアログボックスを表示するという点で少し異なります。)

sessionStorageとlocalStorageはどちらも同じStorageオブジェクトの実装であるため、動作は類似しており、エラー処理も同じであることに注意してください。

于 2013-01-07T06:49:32.370 に答える