Beheben Sie die Fallstricke beim Speichern von Booleschen Werten im lokalen Speicher

Beheben Sie die Fallstricke beim Speichern von Booleschen Werten im lokalen Speicher

LocalStorage speichert Boolesche Werte

Als ich heute LocalStorage zum Speichern boolescher Daten verwendet habe, stellte ich fest, dass es ein Problem mit der Anzeige der Daten auf der Seite gab.

Später stellte ich fest, dass die im lokalen Speicher gespeicherten Booleschen Daten in Zeichenfolgen konvertiert wurden, was dieses Problem verursachte.

Daher werden „true“=true, „false“==false und „true“==false beide als „false“ angezeigt.

Die Fallstricke bei nicht konsequenter Nutzung von LocalStorage

Nach dem Start der neuen Version stellten wir fest, dass eine sehr kleine Anzahl „alter“ Benutzer die Homepage unserer Website nicht im WeChat-Browser öffnen konnte. Nach einem Online-Dateiproxy

Nachdem ich es geändert hatte, habe ich endlich das Problem gefunden.

Problem-Codeausschnitt:

wenn (localstorage.getItem("Dinge")) {
    var Dinge = localstorage.getItem("Dinge");
    (Dinge) verwenden;
    // Löschen Sie den Cache, nachdem Sie ihn einmal verwendet haben. localstorage.removeItem('things');
}anders{
    verwenden (neue Daten);
}

Dieser Code mag auf den ersten Blick in Ordnung erscheinen, birgt jedoch versteckte Gefahren. In der alten Version lautet der Inhalt der im lokalen Speicher gespeicherten Dinge wie folgt:

{
    Name: „px“,
    Alter:'25'
}

In der neuen Version wurde der Wert dieses Caches jedoch aufgrund von Nachfrageproblemen in die folgende Struktur geändert:

{
    Benutzername: „px“,
    mein Alter: '25'
}

Dies führt zu einem Fehler bei der Verwendung der Use-Funktion zur Verarbeitung von Dingen, was dazu führt, dass das nachfolgende RemoveItem nie ausgeführt wird, sodass die zwischengespeicherten Daten im Code nie gelöscht werden und die Use-Funktion immer die alten Daten zum Rendern verwendet, was zu einem Fehler führt und die neuen Daten nie verwendet werden können.

Es gibt zwei Punkte, die verbessert werden müssen

* Dem Cache eine Versionsnummer hinzufügen * Den Cache sofort nach dem Lesen des Caches mit einer Variablen leeren

Der optimierte Code lautet wie folgt:

//Ermitteln Sie zunächst die Cache-Versionsnummer if (localstorage.getItem ("version") == curVersion) {
    wenn (localstorage.getItem("Dinge")) {
        var Dinge = localstorage.getItem("Dinge");
        //Sofort löschen localstorage.removeItem('things');
        (Dinge) verwenden;
    }anders{
        verwenden (neue Daten);
    }
}anders{
    localstorage.removeItem('Dinge');
    verwenden (neue Daten);
}

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung zur lokalen Speichernutzung
  • JavaScript verwendet localStorage zum Speichern von Daten
  • So verwenden Sie localStorage zum Speichern von Daten in Vue

<<:  So installieren und verwenden Sie Cockpit unter CentOS 8/RHEL 8

>>:  Einführung in die Eigenschaften von B-Tree

Artikel empfehlen

Verwenden Sie CSS, um zwischen dem Dunkelmodus und dem Hellmodus zu wechseln

In der fünften Ausgabe von Web Skills wird ausdrü...

Einführung in das Batch-Cache-Löschskript von nginx proxy_cache

Vorwort: Ich habe zuvor den offiziellen Proxy-Cac...

Beispielanalyse von MySQL-Start- und Verbindungsmethoden

Inhaltsverzeichnis So starten Sie mysqld Methode ...

Erläuterung der HTTPS-Prinzipien

Da die Kosten für die Erstellung von HTTPS-Websit...

Lokale Vue-Komponentendatenfreigabe Vue.observable()-Nutzung

Wenn Komponenten detaillierter werden, treten Sit...

MySQL-Dateneinfügungsoptimierungsmethode concurrent_insert

Wenn ein Thread eine DELAYED-Anweisung für eine T...

Docker-Image-Zugriff auf den lokalen Elasticsearch-Port-Vorgang

Wenn Sie den vom Docker-Stack bereitgestellten Im...

Implementierung eines Redis Master-Slave-Clusters basierend auf Docker

Inhaltsverzeichnis 1. Ziehen Sie das Redis-Image ...

MySQL-Platzhalter (erweiterte SQL-Filterung)

Inhaltsverzeichnis Lassen Sie uns zunächst kurz P...

Installations-Tutorial für die Zip-Version von MySQL 5.7.18

Die MySQL 5.7.18 Zip-Version von MySQL ist nicht ...