111

私が書いているプラ​​グインはlocalStorageに大きく依存しています。すべてのユーザー設定がそこに保存されます。一部の設定では、ユーザーに正規表現の書き込みが必要であり、ある時点で正規表現ルールがなくなった場合は悲しくなります。だから今、私はlocalStorageがどれだけ永続的であるか疑問に思っています。

スペックから:

ユーザーエージェントは、セキュリティ上の理由から、またはユーザーから要求された場合にのみ、ローカルストレージエリアからのデータを期限切れにする必要があります。

上記は、クライアント側のCookieと同じように機能するように見えます。つまり、ユーザーがすべてのブラウザデータ(履歴、Cookie、キャッシュなど)をクリアすると、localStorageも切り捨てられます。この仮定は正しいですか?

4

5 に答える 5

75

MozillaはそれをCookieのように実装します。

時間範囲が「すべて」の場合、「ツール」->「最近の履歴をクリア」->「Cookie」を介してDOMストレージをクリアできます(nsICookieManager :: removeAllを介して)

https://developer.mozilla.org/en/DOM/Storage

DOMストレージでは、データの有効期限を指定することはできません。すべての有効期限ルールはユーザーに任されています。Mozillaの場合、これらのルールのほとんどはCookie関連の有効期限ルールから継承されます。このため、おそらくほとんどのDOMストレージデータが少なくとも意味のある時間続くと期待できます。

http://ejohn.org/blog/dom-storage/

Chromeはそれをキャッシュのように実装します:

LocalStorageは安全なストレージではありません

HTML5ローカルストレージは、暗号化されていないデータを文字列形式で通常のブラウザキャッシュに保存します。

永続性

ユーザー(キャッシュの削除)またはアプリによって削除されるまでディスク上

https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage


「クッキーの交換」については、完全にではありません

クッキーとローカルストレージは実際には異なる目的を果たします。Cookieは主にサーバー側で読み取るためのものであり、LocalStorageはクライアント側でのみ読み取ることができます。したがって、問題は、アプリで、このデータを必要とするのは誰ですか?クライアントですか、それともサーバーですか?

于 2012-03-30T19:33:44.360 に答える
18

基本的に、ローカルストレージに大きく依存するべきではありません。

ローカルストレージは、セッションストレージとともに、Cookieの代わりになり、より一貫性のあるAPIを定義することを目的としています。Cookieとはいくつかの違いがあります。

  • Cookieはクライアント側とサーバー側の両方からアクセスできますが、一般にWebストレージ、特にローカルストレージはクライアント側からのみアクセスできます。
  • ドメインあたり5MB以上(Firefox、Google Chrome、Opera、IEでは10MB)に拡張された容量(Cookieの公式は4 KB)。

そうです、あなたの仮定は正しいです。

于 2012-03-30T18:14:00.860 に答える
7

ローカルストレージの使用について注意すべき点が1つあります。これは非常にブラウザ固有です。Firefoxでデータを保存すると、Chromeなどでは利用できなくなります。Cookieとセッションをクリアすることに関しては、ローカルストレージがクリアされるかどうかについてもブラウザ固有であることに気付きました。アプリのローカルストレージに依存することを本当に計画している場合は、詳細をよく調べます。

于 2012-03-30T18:16:14.263 に答える
5

ローカルストレージは、クライアント上のデータの信頼できる永続的なストアになるように設計されています。これ「より優れたCookie」として設計されたものではありません。その機能は、SessionStorageによって満たされるように設計されています。

2011年12月のWebストレージ仕様候補の推奨事項から、

(ローカルストレージ)は、複数のウィンドウにまたがるストレージ用に設計されており、現在のセッションを超えて存続します。特に、Webアプリケーションは、パフォーマンス上の理由から、ユーザーが作成したドキュメント全体やユーザーのメールボックスなど、メガバイトのユーザーデータをクライアント側に保存したい場合があります。

クライアント側のデータとして-ブラウザが実装するサイズ制限内で、クライアント側のデータと同じくらい永続的です。ユーザーはいつでも削除したり、テキストエディターで開いたり、編集したりできます。他のクライアント側のデータと同じです。

于 2012-03-30T22:08:17.413 に答える
3

iOSアプリにlocalStorageを使用している場合は、十分に注意してください。iOSの最新バージョン(頭のてっぺんから5.1)は、localstorageとlocaldbのデータを、定期的にクリアされる、つまり永続的ではないキャッシュの一部に移動しました。これがバグなのかポリシーの変更なのかはまだわかりません。

于 2012-04-14T10:50:08.410 に答える