2

LocalStorage がドメインの最大ストレージ制限に達するとどうなりますか?

  • ハードリミットに達し、静かに新しい値の受け入れを停止する
  • ハードリミットに達してエラーをスローする
  • ソフト制限に達し、ブラウザはプルーニング戦略を使用して新しい値のための余地を作ります

同様の StackOverflow の質問があります: localStorage 値の最大サイズは? これは、ブラウザのストレージ制限が何であるかという質問に答えますが、その質問は、制限に達したときに正確に何が起こるかを尋ねたり答えたりしません. 制限が何であるかは私にはあまり重要ではありません。私にとって重要なのは、制限に達したときに正確に何が起こるか、およびクライアント コードでキャッシュのプルーニングを処理する必要があるかどうか、またはブラウザーが処理するかどうかです。それは自動的に私のために。

4

1 に答える 1

4

仕様を述べる:

新しい値を設定できなかった場合、メソッドは QuotaExceededError 例外をスローする必要があります。(ユーザーがサイトのストレージを無効にしている場合や、クォータを超えている場合などは、設定に失敗する可能性があります。)

したがって、理論的には、そのエラーを防ぐために常にtry-catch 句を使用する必要があります。

for (var i = 0;i<200000;i++){
    test += "sdfghyxcvbn123kjhajsdfkhuwehfkjs,dnfhkweufhkjsdf";
}
try{
    var result = window.localStorage.setItem("test",test);
} catch(e) {
    console.log(e.message);
}
于 2013-03-28T19:28:58.670 に答える