私が書いているプラグインはlocalStorageに大きく依存しています。すべてのユーザー設定がそこに保存されます。一部の設定では、ユーザーが正規表現を記述する必要があり、正規表現ルールが何らかの時点でなくなってしまうと悲しくなります。だから今、私はlocalStorageがどれだけ永続的であるのか疑問に思っています。
仕様 から:
ユーザーエージェントは、セキュリティ上の理由、またはユーザーから要求された場合にのみ、ローカルストレージエリアからのデータを期限切れにする必要があります。
上記は、クライアント側のCookieのように機能するように見えます。つまりユーザーがすべてのブラウザーデータ(履歴、Cookie、キャッシュなど)をクリアすると、localStorageも切り捨てられます。この仮定は正しいですか?
MozillaはCookieのように実装しています:
DOMストレージは、時間範囲が「すべて」の場合、「ツール->最近の履歴をクリア-> Cookies」を介してクリアできます(nsICookieManager :: removeAllを使用)
https://developer.mozilla.org/en/DOM/Storage
DOMストレージでは、データの有効期限を指定することはできません。すべての有効期限ルールはユーザーに任されています。 Mozillaの場合、これらのルールのほとんどはCookie関連の有効期限ルールから継承されます。このため、おそらくDOMストレージデータの大部分が少なくとも意味のある期間続くことが期待できます。
Chromeはキャッシュのように実装します:
LocalStorageは安全なストレージではありません
HTML5ローカルストレージは、暗号化されていないデータを文字列形式で保存します通常のブラウザキャッシュ内。
永続性
ユーザー(キャッシュの削除)またはアプリによって削除されるまでディスク上
https://developers.google.com/web-toolkit/doc/latest/DevGuideHtml5Storage
「Cookieの置き換え」に関しては、 完全ではない
Cookieとローカルストレージは、実際には異なる目的に役立ちます。 Cookieは主にサーバー側を読み取るためのものであり、LocalStorageはクライアント側のみを読み取ることができます。質問は、あなたのアプリで、このデータを必要とするのは誰ですか?クライアントまたはサーバーですか?
基本的に、ローカルストレージに大きく依存する必要がありますnot。
ローカルストレージは、セッションストレージとともに、Cookieの置き換えを目的としており、より一貫したAPIを定義しています。 Cookieとはいくつかの違いがあります。
yes、仮定は正しいです。
ローカルストレージの使用に関する注意事項が1つあります。これは非常にブラウザ固有です。 firefoxでデータを保存する場合、chromeなどには使用できません。また、Cookieとセッションをクリアする限り、ローカルストレージかどうかに関してブラウザ固有であることに気付きました。クリアされます。アプリのローカルストレージに依存することを本当に計画している場合は、詳細をよく調べます。
ローカルストレージは、クライアント上の信頼できる永続的なデータストアとして設計されています。 「」は「(より良いクッキー)」として設計されたものではありません。その機能はセッションストレージによって満たされるように設計されています。
Dec 2011 Web Storage Spec Candidate Recommendation から、
(ローカルストレージ)は、複数のウィンドウにまたがるストレージ用に設計されており、現在のセッションを超えて持続します。特に、Webアプリケーションでは、パフォーマンス上の理由から、ユーザーが作成したドキュメント全体やユーザーのメールボックスなど、メガバイト単位のユーザーデータをクライアント側に保存したい場合があります。
クライアント側のデータとして-それは、ブラウザが実装するサイズ制限内で、anyクライアント側のデータと同じくらい永続的です。ユーザーはいつでも削除したり、テキストエディターで開いたり、編集したりできます。クライアント側のデータと同様です。
IOSアプリにlocalStorageを使用している場合、非常に注意してください。 iOSの最新バージョン(私の頭の5.1番)は、localstorageとlocaldbのデータを、定期的にクリアされる、つまり永続的ではないキャッシュの一部に移動しました。これがバグなのかポリシーの変更なのかはまだわかりません。