So löschen Sie den Backbone-Localspeicher

8

Das JavaScript scheint ziemlich einfach zu sein, nur localStorage.clear ().

Gibt es etwas Ähnliches für den Backbone-Localspeicher, und wenn nicht, kann mir jemand in die richtige Richtung zeigen, wie es geht.

Ich habe darüber nachgedacht, so etwas zu tun:

localStorage.each (localStorage.delete (this))

außer das würde nicht auf dieses Element zeigen, oder?

    
prashn64 28.03.2012, 16:12
quelle

4 Antworten

5

Es gibt nur wenige Möglichkeiten, dies aus der Sammlung heraus zu tun, aber wie auch immer Sie sich entscheiden, Sie müssen bei jedem Modell den Befehl destroy aufrufen, der die Synchronisierung sowohl auf der Client- als auch auf der Serverseite ausführt (was localStorage ausführt) wie).

%Vor%

Aktualisieren

Pro Kommentar sieht das nicht mehr so ​​aus. Da dies immer noch als Antwort markiert ist, einschließlich der Antwort, die unten funktionieren sollte, pro skcin7 .

%Vor%     
dc- 28.03.2012, 19:29
quelle
5

Ich weiß, dass sich diese Art von Graben graben mag, aber ich habe schon eine Weile nach einer Lösung gesucht und keine der obigen Schnipsel schien für mich zu funktionieren. Ich habe immer die Größe der Sammlung um die Hälfte verringert, egal wie ich es probiert habe.

Nach einer ordentlichen Menge an Fiedeln, kam ich auf diese Idee:

%Vor%

Backbone entfernt Gegenstände "im laufenden Betrieb". Wenn Sie also 40 Gegenstände haben, können Sie den 21. Gegenstand nicht löschen, da nur noch 20 Gegenstände übrig sind. Seltsamerweise scheint dies auch die collection.each () Funktion zu beeinflussen, die mir wirklich wie ein Fehler erscheint.

    
Sören Kampschroer 23.09.2013 20:06
quelle
1

Das Iterieren über die Sammlung und das Aufrufen von destroy auf jedem Element ist in keinem Fall sicher. Der Grund dafür ist, dass das Iterieren über die gleichzeitig geänderte Sammlung zu unerwarteten Ergebnissen führen kann.

Es ist besser, zuerst die Sammlung zu klonen und über diesen Klon zu iterieren. Checkout dies führt nicht zu einer fehlerfreien Sammlung für weitere Details

Beispiel:

%Vor%     
Benjamin 10.11.2013 16:06
quelle
0

Wenn Sie dies nicht programmgesteuert durchführen möchten, können Sie den Entwicklermodus (F12) immer öffnen, zur Registerkarte Ressourcen navigieren, im linken Bereich "Lokaler Speicher" auswählen und die Datensätze löschen.

Hinweis: Nur in Chrome getestet.

    
pushkin 20.07.2015 16:19
quelle