LocalStorage speichert Boolesche WerteAls 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 LocalStorageNach 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:
|
<<: So installieren und verwenden Sie Cockpit unter CentOS 8/RHEL 8
>>: Einführung in die Eigenschaften von B-Tree
Schauen wir uns zunächst die Definition des Posit...
In der fünften Ausgabe von Web Skills wird ausdrü...
Lassen Sie uns heute über eine Situation sprechen...
Vorwort: Ich habe zuvor den offiziellen Proxy-Cac...
Inhaltsverzeichnis So starten Sie mysqld Methode ...
Da die Kosten für die Erstellung von HTTPS-Websit...
Wenn Komponenten detaillierter werden, treten Sit...
Lösung für das Problem der automatischen Trennung...
Wenn ein Thread eine DELAYED-Anweisung für eine T...
Wenn Sie den vom Docker-Stack bereitgestellten Im...
Hier sind einige Punkte, die Sie bei der Registri...
1. Die Entstehung des Problems Habe eine flache L...
Inhaltsverzeichnis 1. Ziehen Sie das Redis-Image ...
Inhaltsverzeichnis Lassen Sie uns zunächst kurz P...
Die MySQL 5.7.18 Zip-Version von MySQL ist nicht ...