Die Entwicklung von Webanwendungen hat zu einem zunehmenden Einsatz von clientseitigem Speicher geführt, und es gibt verschiedene Möglichkeiten, clientseitigen Speicher zu implementieren. Die einfachste und kompatibelste Lösung ist Cookie, aber als echter clientseitiger Speicher weist Cookie viele schwerwiegende Mängel auf. Darüber hinaus kann userData Behavior auch in IE6 und höher verwendet werden, globalStorage kann unter Firefox verwendet werden und Flash Local Storage kann in Umgebungen mit Flash-Plug-Ins verwendet werden. Diese Methoden unterliegen jedoch alle Kompatibilitätseinschränkungen, sodass dies in Wirklichkeit nicht der Fall ist ideal zu verwenden. Als Reaktion auf die obige Situation bietet HTML5 eine idealere Lösung: Wenn Sie komplexe Daten speichern müssen, können Sie Web Database verwenden und SQL wie ein Client-Programm verwenden (der Web Database-Standard befindet sich jedoch derzeit in einer Sackgasse Derzeit sind die implementierten Browser sehr begrenzt. Wenn Sie Daten speichern müssen, die einfach mit Schlüssel/Wert-Paaren gelöst werden können, können Sie Web Storage verwenden. In diesem Artikel wird hauptsächlich die spezifische Situation von Web Storage aus verschiedenen Aspekten vorgestellt.
sessionStorage und localStorage
Web Storage besteht eigentlich aus zwei Teilen: sessionStorage und localStorage.
sessionStorage wird zum lokalen Speichern von Daten in einer Sitzung verwendet. Auf diese Daten kann nur von Seiten in derselben Sitzung zugegriffen werden, und die Daten werden zerstört, wenn die Sitzung endet. Daher handelt es sich bei sessionStorage nicht um einen dauerhaften lokalen Speicher, sondern nur um einen Speicher auf Sitzungsebene.
localStorage wird für die dauerhafte lokale Speicherung verwendet, sofern die Daten nicht aktiv gelöscht werden.
Warum sollten Sie sich für Web Storage statt Cookies entscheiden?
Im Vergleich zu Cookies bietet Web Storage viele Vorteile, die sich wie folgt zusammenfassen lassen:
1. Größerer Speicherplatz: Jeder unabhängige Speicherplatz unter IE8 ist 10 MB groß. Die Implementierung anderer Browser ist etwas anders, aber viel größer als bei Cookie.
2. Der gespeicherte Inhalt wird nicht an den Server gesendet: Wenn ein Cookie gesetzt wird, wird der Cookie-Inhalt zusammen mit der Anfrage an den Server gesendet, was eine Verschwendung von Bandbreite für lokal gespeicherte Daten darstellt. Die Daten im Web Storage sind nur lokal vorhanden und interagieren in keiner Weise mit dem Server.
3. Umfangreichere und benutzerfreundlichere Schnittstellen: Web Storage bietet umfangreichere Schnittstellen, die den Datenbetrieb vereinfachen.
4. Unabhängiger Speicherplatz: Jede Domain (einschließlich Subdomains) verfügt über einen unabhängigen Speicherplatz. Jeder Speicherplatz ist völlig unabhängig, sodass keine Datenverwirrung auftritt.
Wie ist die Kompatibilität?
Die folgenden verschiedenen Tests wurden in den folgenden Browsern durchgeführt: IE8, Firefox3.6, Chrome5, Safari4, Opera10. Es stellte sich heraus, dass die Implementierung der APIs in jedem Browser grundsätzlich gleich ist und es bestimmte Kompatibilitätsprobleme gibt, die jedoch nicht vorliegen den normalen Gebrauch beeinträchtigen.
sessionStorage-Test
In diesem Abschnitt werden hauptsächlich einige Funktionen von sessionStorage getestet. Der Schwerpunkt des Tests liegt auf der Definition der Sitzung durch jeden Browser und der domänenübergreifenden Situation. Die Testmethode ist sehr einfach: Öffnen Sie Seite A , schreiben Sie die aktuellen Sitzungsdaten auf Seite A und rufen Sie dann Seite B mithilfe verschiedener Methoden über die Links oder Schaltflächen auf Seite A auf. Wenn Seite B auf die Daten auf Seite A zugreifen kann, bedeutet dies dass der Browser die aktuellen Seiten A und B als dieselbe Sitzung betrachtet. Die spezifischen Ergebnisse des Tests sind in Tabelle 1 aufgeführt:
Tabelle 1 sessionStorage-Kompatibilitätstest
Wie aus Tabelle 1 hervorgeht, ist der Zugriff auf Sitzungsdaten aus Sicherheitsgründen nicht in allen Browsern domänenübergreifend, auch nicht subdomänenübergreifend, gestattet. Ansonsten ist die Implementierung in Mainstream-Browsern relativ konsistent.