Web

Datenaufbereitung, lokaler Speicher

HTML5 - was es kann (Teil 2)

Simon verantwortet als Program Manager Executive Education die Geschäftsentwicklung und die Inhalte des IDG-Weiterbildungsangebots an der Schnittstelle von Business und IT. Zuvor war er rund zehn Jahre lang als (leitender) Redakteur für die Computerwoche tätig und betreute alle Themen rund um IT-Sicherheit, Risiko-Management, Compliance und Datenschutz.
Neue HTML5-Standards für Webspeicher, webbasierende Datenbanken und Online-Dateizugriffe verwandeln Websites in lokale Anwendungen.

Im ersten Teil der HTML5-Serie konnten Sie alles über neue Präsentationsformen im multimedialen Bereich lesen. Im zweiten Teil beschäftigen wir uns mit den neuen Möglichkeiten zur Datenaufbereitung sowie zur Verknüpfung von Online-Diensten und lokalen Anwendungen.

Seit kurzem hat das W3C seinem kommenden HTML5-Standard auch ein eigenes Logo verpasst.
Seit kurzem hat das W3C seinem kommenden HTML5-Standard auch ein eigenes Logo verpasst.
Foto: W3C

Von allen Spezifikationen, die das World Wide Web Consortium W3C in seinen HTML5-Entwürfen vorlegt, ist die Möglichkeit, Online-Daten auf dem heimischen Rechner abzulegen, die wohl technisch spannendste. Zu Beginn der Browser-Ära waren diese Zugriffsprogramme lediglich als Client gedacht, die nur das umsetzten und anzeigten, was Sie vom Server vorgegeben bekamen. Recht schnell erkannten die Programmiere die Limitation dieser Idee und führten kleine Datenschnipsel ein, die Websites ihren Besuchern ungefragt auf den Rechner überspielten und später zurück an den Server sendeten. Diese "Cookies" sind nichts anderes als winzige Textdateien, die Informationen über den Surfer enthalten, die beim erneuten Besuch einer bestimmten Website vom Browser ausgelesen werden können. Schnell bildete sich Widerstand gegen das Ausspähen der Surfgewohnheiten: Cookies wurden zunehmend häufiger gelöscht oder gleich ganz gesperrt. Die Möglichkeiten der Entwickler waren also weiterhin stark eingeschränkt.

Um das Problem zu lösen und Browser-basierter Software zum Durchbruch zu verhelfen, dürfen JavaScript-Programmierer laut neuer HTML-Spezifikation nun angemessene Datenmengen auf einem lokalen Rechner ablegen. Damit entsteht zum einen ein größerer Zwischenspeicher für Informationen über den Benutzer, auf den Websites zugreifen können. Zum anderen können Anwender Web-Seiten lokal ablegen und damit installierbare Desktop-Software überflüssig machen. Denn hat der Browser erst einmal vollen Lese- und Schreibzugriff auf die Festplatte, gibt es wenig Grund, eigenständige Desktop-Applikationen zu installieren - es ist schließlich so gut wie alles im Web verfügbar.

Webspeicher

Die einfachste Form des Webspeichers legt Daten der aktuellen Session ab - aber nur solange, wie der Browser geöffnet ist. Jedes neue Dokument bekommt ein sessionStorage-Objekt zugewiesen, das ein paar grundlegende Funktionen wie "setItem", "getItem" und "clear" beherrscht. Diese Items bestehen aus Schlüssel-Wert-Paaren - vergleichbar mit assoziativen Arrays.

Lokaler Speicher

Die richtigen Vorteile bringt das neue localStorage-Objekt, das zwar fast genauso wie das SessionStorage-Objekt aussieht, aber gänzlich anders arbeitet. Dort, wo sessionStorage vergisst, kann sich localStorage erinnern. Daten bleiben erhalten, obwohl der Browser geschlossen und der Rechner heruntergefahren wird. Mehr noch: Ist eine Website in zwei Fenstern gleichzeitig aktiv, werden die lokal gespeicherten Daten gemeinsam genutzt. Ändert sich der Code, auf den das eine Fenster gerade zugreift, ändern sich auch die Daten des anderen. Die HTML5-Spezifikation legt fest, dass ein Ereignis "storageChange" in einem Fenster sich sofort auf alle Fenster auswirkt. Einige Browser unterstützen dieses Vorgehen schon länger - manche von ihnen nur beim Tabbed Browsing, manche auch über verschiedene Fenster hinweg. Da es noch keine verbindlichen Standards gibt, ist die Implementierung aber noch längst nicht abgeschlossen.

Lesen Sie auf der folgenden Seite, was durch die neuen Storage-Objekte für Komplikationen drohen könnten.