Das Festlegen des Werts von „dataURL“ hat das Kontingent überschritten

Lesezeit: 1 Minute

Benutzer-Avatar
Ortal Blumenfeld Lagziel

Ich habe einen JavaScript-Code, der die Zeichenfolge im lokalen Speicher speichert. Die Zeichenfolgengröße beträgt 400000.

var dataURL = canvas.toDataURL("image/jpg").toString();
localStorage.setItem("dataURL", dataURL);

Ich öffne die HTML-Datei von Chrome, auf einem Computer ist es in Ordnung, auf dem anderen Computer bekomme ich

Nicht erfasster QuotaExceededError: Fehler beim Ausführen von „setItem“ auf „Storage“: Das Festlegen des Werts von „dataURL“ hat das Kontingent überschritten.

In diesem Computer durfte ich nicht mehr als 100000 Zeichen Zeichenfolgenlänge speichern. Beide Computer haben die gleiche Chrome-Version 35.0.1916.114 m Warum?

  • Dies können im Browser festgelegte Einstellungen, verfügbarer Speicherplatz auf jedem Computer oder andere Umgebungsunterschiede sein.

    – jfriend00

    1. Juni 2014 um 7:35 Uhr

  • Verwandte Frage: stackoverflow.com/questions/2989284/…

    – jfriend00

    1. Juni 2014 um 7:39 Uhr

  • versuchen Sie diesen Versuch { var count = 100; var message = “LocalStorageIsNOTFull”; for (var i = 0; i <= count; count + 250) { Nachricht += Nachricht; localStorage.setItem("stringData", Nachricht); console.log (lokaler Speicher); console.log (Anzahl); } } catch (e) { Debugger console.log("Lokaler Speicher ist voll, bitte Daten leeren"); // feuert, wenn der lokale Speicher voll wird // Sie können den Fehler hier behandeln, um den lokalen Speicher zu leeren }

    – Jinal

    13. Oktober 2017 um 12:44 Uhr

  • Das Problem kann aufgrund des Timings auftreten, wenn localStorage erstellt und die API in der Ereignisschleife aufgerufen wird. Zuerst müssen Sie localStorage erstellen und versuchen, auf localStroge zuzugreifen, und dann einen API-Aufruf tätigen.

    – Schah Vipul

    27. Juni um 9:13


Benutzer-Avatar
Jinal

Wenn Ihr Browser das maximale Limit erreicht, wird dieser Fehler ausgegeben. Fehler beim Ausführen von „setItem“ auf „Storage“: Das Festlegen des Werts von „” hat das Kontingent überschritten.

  • Du kannst das so handhaben
 try {
     var count = 100;
     var message = "LocalStorageIsNOTFull";
     for (var i = 0; i <= count; count + 250) {
         message += message;
         localStorage.setItem("stringData", message);
         console.log(localStorage);
         console.log(count);
     }

 }
 catch (e) {
     console.log("Local Storage is full, Please empty data");
     // fires When localstorage gets full
     // you can handle error here or empty the local storage
 }

Diese Art von Fehler kann auch aus folgendem Grund auftreten:

Es gibt eine Grenze, bis zu der Sie Werte in einem einzelnen localStorage-Schlüssel speichern können.

Zum Beispiel, wenn ich localStorage.setItem(‘data’,allData) schreibe; dann gibt es eine Grenze zu setzen ‘Daten’ Schlüssel, in dem eine bestimmte Anzahl von Zeichen gespeichert werden kann ‘alle Daten’ Wert.

In Chrome und Firefox können Sie bis zu speichern 5200000 Zeichen in einem einzigen Schlüssel. Sie können Ihr Browser-Limit überprüfen, indem Sie diese Website besuchen https://arty.name/localstorage.html

Um dieses Problem zu beheben, müssen Sie also die Anzahl der Zeichen überprüfen, die Sie in einem einzigen Schlüssel speichern möchten.

Wenn Sie die Wertgröße des localStorage-Schlüssels überschreiten, müssen Sie die Größe auf ein angemessenes Limit verringern.

Löschen des lokalen Speichers mit localStorage.clear(); hat bei mir funktioniert.

Wenn Sie Firefox verwenden, müssen Sie möglicherweise verwenden window.localStorage.clear();

Die Standardeinstellung für den lokalen Speicher von Chrome beträgt 25 MB. Wenn Sie also den lokalen Speicher Ihres Chrome löschen, funktioniert dies. viel Glück!

Dies hängt von der Browserpräferenz und dem Speicherplatz ab. Vergleichen Sie hier die Browser Ihrer beiden Computer https://arty.name/localstorage.html und prüfen Sie, ob sie dieselbe Nr. speichern. von Charakteren. Sie würden den Unterschied sehen.

  • Was Sie gesagt haben, ist richtig, aber ich habe die Antwort mit einem Link gegeben, der beweisen könnte, was ich versucht habe zu erklären. Ich glaube nicht, dass wir hier ein Code-Snippet ausführen können, das diese Ergebnisse liefern würde. Oder gibt es dafür auch eine Möglichkeit?

    – Computer

    10. Dezember 2015 um 10:02 Uhr

Benutzer-Avatar
Schamli Kiruba

Mit dem folgenden Code können Sie die maximale Datenmenge im lokalen Speicher speichern, ohne sie zu löschen, wenn der Speicherplatz überschritten wird.

const setInLocalStorage = (keyName, value) => {
  try {
      localStorage.setItem(keyName, JSON.stringify(value));
  } catch (error) {
      console.log('Error in local storage', error);
      setInLocalStorage(keyName, JSON.parse(localStorage.getItem(keyName)));
  }
};

  • Was Sie gesagt haben, ist richtig, aber ich habe die Antwort mit einem Link gegeben, der beweisen könnte, was ich versucht habe zu erklären. Ich glaube nicht, dass wir hier ein Code-Snippet ausführen können, das diese Ergebnisse liefern würde. Oder gibt es dafür auch eine Möglichkeit?

    – Computer

    10. Dezember 2015 um 10:02 Uhr

1054010cookie-checkDas Festlegen des Werts von „dataURL“ hat das Kontingent überschritten

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy