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
Meistens werden Plug-Ins zum Hochladen von Dateie...
Die Fallstricke 1. In vielen Tutorials im Interne...
Vorwort Hinweis: Die Testdatenbankversion ist MyS...
In diesem Artikel wird der spezifische Code von V...
Docker-Installation 1. Anforderungen: Linux-Kerne...
1. Ursache Der offizielle Cerbot ist zu nervig. E...
Die MySQL-Fremdschlüsseleinschränkung (FOREIGN KE...
Inhaltsverzeichnis 1. Einleitung 2. Erstellen Sie...
Anforderungen: Entfernen Sie HTTP-Antwortheader i...
Inhaltsverzeichnis Docker-System df Docker-System...
Floating Ads sind eine sehr verbreitete Form der ...
Weitere spannende Inhalte finden Sie unter https:...
Der Installationsprozess von VMware wird nicht de...
Inhaltsverzeichnis Überblick Objektrestattribut E...
Die folgenden CSS-Klassennamen, die mit einer Zah...