[解決済み] localStorageの使用量計算
2023-07-18 03:02:10
質問
BespinエディタとHTML5のlocalStorageを使用してアプリを作成しています。これはすべてのファイルをローカルに保存し、文法を助け、JSLint および CSS と HTML のための他のいくつかのパーサーを使用して、ユーザーを支援します。
私は、localStorageの上限がどれくらい使用されたか、そして実際にどれくらいあるか計算したいです。 これは今日可能ですか? 単純に保存されているビットを計算するのはやめようと思っていました。しかし、また、私は自分自身で測定することができないより多くのものがあるかどうかわかりません。
どのように解決するのですか?
私が必要とするブラウザで残りの制限を取得する普遍的な方法は見つかりませんでしたが、制限に達したときにポップアップするエラー メッセージがあることを知りました。もちろん、これは各ブラウザで異なります。
それを最大化するために、私はこの小さなスクリプトを使用しました。
for (var i = 0, data = "m"; i < 40; i++) {
try {
localStorage.setItem("DATA", data);
data = data + data;
} catch(e) {
var storageSize = Math.round(JSON.stringify(localStorage).length / 1024);
console.log("LIMIT REACHED: (" + i + ") " + storageSize + "K");
console.log(e);
break;
}
}
localStorage.removeItem("DATA");
そこから、こんな情報を得ました。
グーグルクローム
-
DOMException。
- コード 22
- message: "「Storage」での「setItem」の実行に失敗しました。data' の値を設定するとクォータを超えました."
- name: "QuotaExceededError"。
Mozilla Firefox
-
DOMException です。
- コード 1014
- message: "永続的ストレージの最大サイズに達しました。
- name: "NS_ERROR_DOM_QUOTA_REACHED"
サファリ
-
DOMException です。
- コード 22
- message: "QuotaExceededError。DOM Exception 22"
- 名前: "QuotaExceededError"
インターネットエクスプローラ、エッジ (コミュニティ)
-
DOMException。
- コード 22
- message: "QuotaExceededError"。
- 名前: "QuotaExceededError"
私の解決策
これまでのところ、私のソリューションは、ユーザーが何かを保存するたびに余分な呼び出しを追加することです。そして、もし例外が発生した場合は、ストレージの容量が不足していることを伝えるようにします。
編集:追加されたデータを削除する
言い忘れましたが、これが実際に機能するためには、追加したデータを削除するために
DATA
の項目を削除する必要があります。この変更を反映させるために、上記で
removeItem()
関数を使用することで反映されます。
関連
-
[解決済み] HTML5のlocalStorageにオブジェクトを格納する方法は?
-
[解決済み] javascriptでlocalStorageをクリアする?
-
[解決済み] localStorage、sessionStorage、session、cookieの違いは何ですか?
-
[解決済み] localStorageの値の最大サイズは?
-
[解決済み] ブラウザウィンドウ/タブを閉じたときに、localStorageの項目を削除するには?
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] 変異を伴わないオブジェクトからの値の削除
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] localStorageの値の最大サイズは?
-
[解決済み] localStorageのサイズの求め方
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] JSHintの'+'前の改行不良の説明
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?