1. ホーム
  2. javascript

[解決済み] localStorageの持続性は?

2022-11-10 20:44:29

質問

私が書いているプラグインで、localStorageに大きく依存しています。すべてのユーザー設定はそこに保存されます。いくつかの設定は、ユーザーが正規表現を書き込む必要があり、ある時点でその正規表現ルールがなくなると、ユーザーは悲しい思いをします。 そのため、localStorageがどの程度永続的であるかが気になります。

から 仕様書 :

<ブロッククオート

ユーザーエージェントは、セキュリティ上の理由またはユーザーから要求された場合にのみ、ローカルストレージ領域からデータを失効させるべきです。

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

どのように解決するのですか?

MozillaはCookieのように実装しています。

DOM ストレージは、時間範囲が "Everything" の場合、"Tools -> Clear Recent History -> Cookies" でクリアできます (nsICookieManager::removeAll を使用します)。

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

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

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

Chromeはキャッシュのように実装しています。

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

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

永続性

ユーザーによる削除(キャッシュの削除)またはアプリによる削除が行われるまで、ディスク上に存在します。

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


クッキーに代わるものとして、"。 ではなく

<ブロッククオート

Cookieとローカルストレージは本当に異なる目的を果たします。クッキーは主にサーバーサイドで読み取るためのもので、ローカルストレージはクライアントサイドでのみ読み取ることができます。つまり、あなたのアプリでは、クライアントとサーバーのどちらがこのデータを必要とするのか、ということです。