Das Festlegen des Werts von „dataURL“ hat das Kontingent überschritten
Lesezeit: 1 Minute
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.
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
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
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.
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
10540100cookie-checkDas Festlegen des Werts von „dataURL“ hat das Kontingent überschrittenyes
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