データはどのくらいの期間、localStorage に保存されると考えられますか。平均的なユーザーの localStorage データはどのくらいの期間保持されますか。ユーザーがデータを消去しない場合、ブラウザを再インストールするまで保持されますか。
これはブラウザ間で一貫していますか?
ベストアンサー1
localStorage は、Web ストレージ、HTML5 ストレージ、DOM ストレージとも呼ばれます (これらはすべて同じ意味です)。
localStorage.setItem('bob', varMyData);
sessionStorage.setItem('bob', varMyData);
ここ、一番上には、インデックスDB API- そして保存できるはるかに多くのデータlocalStorage よりも!(下記の制限事項を参照)
localStorageはsessionStorageに似ていますが、それ以外でlocalStorage に保存されたデータには有効期限はありませんが、sessionStorage に保存されたデータはブラウジング セッションが終了すると (つまり、ブラウザー/ブラウザー タブが閉じられると) クリアされます。(見る 制限事項 最新のストレージ サイズの制限については、以下のセクションを参照してください。
セッションストレージはローカルストレージよりも使用頻度が低く、現在のブラウザタブ内にのみ存在します。同じウェブサイトが読み込まれた2つのタブでも、異なるセッションストレージデータを持ちます。セッションストレージデータはページの更新後も残りますが、タブを閉じたり開いたりすると失われます。一方、ローカルストレージデータは、同じブラウザのすべてのタブとウィンドウで共有されます。起源LocalStorage データは期限切れにならず、ブラウザを再起動した後や OS を再起動した後でも残ります。
localStorage はすべてのブラウザで使用できますが、永続性は一貫して実装されていません。特に、localStorage はユーザーの操作によってクリアされる可能性があり、誤ってクリアされる可能性があります (すべての Cookie をクリアすると localStorage もクリアされると誰が考えるでしょうか?)。
Firefox では、次の 3 つの条件が満たされると localStorage がクリアされます: (a) ユーザーが最近の履歴をクリアする、(b) Cookie をクリアするように選択する、(c) 時間範囲が「すべて」である、または LocalStorage がいっぱいのとき - 以下の「制限」セクションを参照してください。
Chromeでは、次の条件が満たされるとlocalStorageがクリアされます: (a) 閲覧データを消去する、(b) 「Cookieとその他のサイトデータ」を選択する、(c) 期間が「最初から」である、またはLocalStorageがいっぱいになったとき(以下の「制限」セクションを参照)。Chromeでは、特定のサイトの localStorage を削除する。
IEでlocalStorageをクリアするには、(a)ツール--インターネットオプション、(b)全般タブ、(c)終了時に閲覧履歴を削除する、(d)「CookieとWebサイトデータ」(または「一時インターネットファイルとWebサイトファイル」)が選択されていることを確認する、(e)上部の「お気に入りのWebサイトデータを保持する」のチェックを外すことを検討する
Safariの場合: (a) Safariをクリック (b) 環境設定 (c) プライバシータブを選択 (d) すべてのWebサイトデータを削除をクリック (e) 今すぐ削除をクリック
Opera: Opera サイトに localStorage に関する優れた記事があるにもかかわらず、localStorage をクリアする方法についてユーザー向けの明確な (非プログラム的な) 指示はまだ見つかりませんでした。もし見つけた方は、この回答の下に参照リンクを添えてコメントを残してください。
制限事項:
合計 localStorage は空きディスク容量の 50% に制限されます。
のインデックスDB APIただし、利用可能なディスク容量の80%を保存でき、そのうち75%は単一のドメインで使用できます。<Gru>それが私は...について話しています!<\Gru>インデックスDBはlocalStorageよりも複雑なので、次のようなラッパーを使うとよいでしょう。デキシーまたはidb。
IndexedDBはlocalStorageよりもはるかに永続的です(Safariブラウザを除く)削除するIndexedDBデータベースは、最終使用から7日後に削除されます。これそしてこれそしてW3Cワーキングペーパー実際には、IndexedDBのデータはより持続的かもしれない文書化されているよりも。
また、1 つの「オリジン」(ドメイン + サブドメイン)の localStorage は、(理論上は)合計 localStorage の 20% に制限されますが、実際には、1 つのドメインの localStorage は(2022 年 10 月現在)次のようになります。
- 最小: 10Mb
- 最大: 2Gbソース
- 実際: 5Mb(私のシステムでは6Gbの空き容量に制限があり、修正版によるとこのスクリプト)
(テスト システム: i7 / 32Gb / 500Gb SSD、6Gb 空き容量 / Brave ブラウザ:
バージョン 1.45.133 Chromium: 107.0.5304.141 (公式ビルド) (64 ビット)
ローカルストレージの合計容量がいっぱいになると、ブラウザは LRU ポリシーに基づいてデータの消去 (「オリジン エビクション」と呼ばれる) を開始します。つまり、ブラウザが制限を超えなくなるまで、最も最近使用されていないドメインが最初に削除され、次に次のドメインが削除されます。
このオリジン削除プロセスでは、ストレージ容量が再び制限を下回るまで、ドメイン全体のデータが削除されることに注意してください。ドメインの localStorage データの削除は「すべてまたはゼロ」です。つまり、部分的なデータはデータがないよりもずっと悪い可能性があるため、オリジン (ドメイン) の一部を削除するトリミング効果は設定されていません。
のOpera 開発サイトlocalStorage の優れた要約があります:
クライアント側でデータを保存する現在の方法 (Cookie) には問題があります。
サイズが小さい: クッキーの最大サイズは通常4KB程度で、複雑なデータを保存するのにはあまり適していません。
クッキーでは、同じサイト上の2つ以上のトランザクションを追跡することは困難であり、2つ以上の異なるタブで発生する可能性があります。
クッキーはクロスサイトスクリプティングなどの技術を使用して悪用され、セキュリティ侵害を引き起こす可能性があります。
クッキーに代わる他の(あまり一般的ではない)方法としては、クエリ文字列、隠しフォーム フィールド、フラッシュ ベースのローカル共有オブジェクトなどの手法があります。それぞれに、セキュリティ、使いやすさ、サイズ制限などに関する問題があります。そのため、これまではユーザー側でデータを保存するためにかなり不適切な方法を使用してきました。よりよい方法が必要であり、そこで Web ストレージが登場します。
ウェブストレージ
W3C Web ストレージ仕様は、クライアント側でデータを保存するよりよい方法として設計されました。セッション ストレージとローカル ストレージという 2 種類のストレージがあります。
セッション ストレージとローカル ストレージはどちらも、通常、ドメインごとに約 5 MB のデータを格納できます。これは、Cookie よりも大幅に多い量です。MDNの数字は更新されました(2022年10月)そして、次のように言います: 最小: 10Mb / 最大: 2Gb、この著者はドメイン/オリジンごとに 5Mb を超えることはできません。翻訳/テストスクリプト
リソース:
https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
https://javascript.info/localstorage
https://dev.opera.com/articles/web-storage/
http://www.quirksmode.org/html5/storage.html
http://www.ghacks.net/2015/02/05/how-to-clear-web-storage-in-your-browser-of-choice/
http://www.opera.com/dragonfly/documentation/storage/