Web Storage
Web Storage (auch DOM Storage) ist eine Technik für Webanwendungen, mit der Daten in einem Webbrowser gespeichert werden. DOM Storage unterstützt persistente Datenspeicherung, ähnlich Cookies, ebenso wie die lokale (Local Storage) und Session-spezifische Speicherung (Session Storage).
DOM Storage wird durch das World Wide Web Consortium (W3C) standardisiert. Ursprünglich war es Teil der HTML5-Spezifikation, wurde mittlerweile aber in eine eigene Spezifikation ausgegliedert.<ref>Web Storage Spezifikation. W3C (World Wide Web Consortium).</ref>
Merkmale
DOM Storage kann vereinfacht als eine Weiterentwicklung von Cookies („Super-Cookies“) angesehen werden. Die Technik bietet weitaus größere Speicherkapazität (5 MB pro Domain in Firefox,<ref>John Resig: DOM Storage</ref> ca. 10 MB pro Storage Area im Internet Explorer<ref name="msdn-ie">{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:Introduction to Web Storage|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=Introduction to Web Storage}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=Introduction to Web Storage}}}}|[{{#invoke:URLutil|getNormalized|1=https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=Introduction to Web Storage}}}}]}}{{#if:| ({{{format}}}{{#if:Microsoft2006-10-20{{#if: 2019-07-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| )
| {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ;
| )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)}}%7C%7C}}}}{{#if:Introduction to Web Storage|{{#if:{{#invoke:WLink|isValidLinktext|1=Introduction to Web Storage|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: Microsoft| Microsoft{{#if: 2006-10-20|,|{{#if: 2019-07-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: 2006-10-20| {{#if:{{#invoke:DateTime|format|2006-10-20|noerror=1}}
|{{#invoke:DateTime|format|2006-10-20|T._Monat JJJJ}}
|{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2006-10-20|class=Zitationswartung}} }}{{#if: |,|{{#if: 2019-07-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2019-07-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:2006-10-20Microsoft|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:1872535||(?)}}}}}}{{#if: 2019-07-01|;}}}}{{#if: 2019-07-01| {{#if:2006-10-20Microsoft{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2019-07-01 |ISO|noerror=1}} }}
|4=im Jahr
|7=im
|10=am
|#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2019-07-01|class=Zitationswartung}} }} {{#invoke:DateTime|format|2019-07-01|T._Monat JJJJ}}
| {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:Microsoft2006-10-20{{#if: 2019-07-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
| (
| {{#if: | | (}}
}}{{#ifeq:{{#if:en|en|de}}|de||
{{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2006-10-20{{#if: 2019-07-01 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
#if:
| „{{
#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| Vorlage:Str trim
| {{#invoke:Vorlage:lang|flat}}
}}“
| {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
| „Vorlage:Str trim“
| {{#invoke:Text|quote
|1={{#if:
| {{#invoke:Vorlage:lang|flat}}
| {{#invoke:Vorlage:lang|flat}} }}
|2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
|3=1}} }}
}}{{#if:
| (<templatestyles src="Person/styles.css" />{{#if: | : }}{{#if: | , deutsch: „“ }})
| {{#if:
| ({{#if: | , deutsch: „“ }})
| {{#if: | (deutsch: „“) }}
}}
}}{{#if: {{{zitat}}}
| {{#if:
| {{#if: {{{zitat}}}
| Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
| Vorlage:": Text= fehlt }}{{#if: | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
| Vorlage:": Ungültiger Wert: ref=
| {{{ref}}} }}
}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) | {{#if: | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) | {{#if:{{#invoke:URLutil|isWebURL|https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) | {{#if:{{#invoke:URLutil|isWebURL|https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: deadurl |checked|deadurl|= |#default= {{#if: || }} }}[https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) }}|{{#switch: |0|=Vorlage:Toter Link/Core{{#if: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) | {{#if: | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) | {{#if:{{#invoke:URLutil|isWebURL|https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)}} || {{#if: || }} }} | {{#if: | {{#if: || }} | {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. ) {{#if: | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) | {{#if:{{#invoke:URLutil|isWebURL|https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85)}} || {{#if: || }} }} }}{{#if: | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}[https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/bg142799(v=vs.85) }} }}}}}}}}}}{{#if:| {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}
}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>) und bessere Entwicklungsschnittstellen. In einigen Punkten unterscheidet sie sich jedoch von Cookies.
Client-seitige Schnittstelle
Im Gegensatz zu Cookies, auf die sowohl Server als auch Client zugreifen können, wird DOM Storage vollständig vom Client gesteuert. Es werden hierbei nicht mit jedem HTTP-Request Daten zum Server übertragen und ein Webserver kann auch nicht direkt Daten im DOM Storage schreiben. Der Zugriff erfolgt ausschließlich über Skripte auf der Webseite.
Speicherung
DOM Storage bietet zwei verschiedene Arten der Speicherung an: lokale (localStorage) und Session-spezifische (sessionStorage). Sie unterscheiden sich in Gültigkeitsbereich und -dauer.
Lokale Speicherung
Daten, die lokal gespeichert werden, sog. Local Shared Objects (LSO), sind mit einer Domain und dem lokalen Benutzerprofil des Zugriffsrechners verknüpft und bleiben auch nach Beenden des Browsers bestehen. Alle Skripte einer Domain, von der aus die Daten gespeichert wurden, können auf die benutzerprofilspezifischen Daten zugreifen.
Bei Mozilla Firefox werden die Daten in der Datenbankdatei webappsstore.sqlite gespeichert. Mit einem geeigneten Programm kann die SQLite3-Datei betrachtet werden. Es existieren Browser-Addons, die zu dem Zweck entstanden sind, diese Daten vom System wieder löschen zu lassen, auch automatisiert, z. B. mit Better Privacy. Über die Eingabe von „about:config“ in der Adresszeile kann der Wert von dom.storage.enabled von true zu false geändert, und DOM-Storage-Objekte somit abgeschaltet werden.
Session-spezifische Speicherung
Session-spezifisch gespeicherte Daten sind mit dem Browser-Fenster verknüpft und auf dieses beschränkt. Gespeicherte Daten werden beim Schließen des Browser-Fensters gelöscht. Diese Technik bietet die Möglichkeit, mehrere Instanzen derselben Anwendung in verschiedenen Fenstern laufen zu lassen, ohne dass es zu einer gegenseitigen Beeinflussung kommt, was von Cookies nicht unterstützt wird.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20110201152609
| {{#ifeq: 20110201152609 | *
| {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#introduction}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20110201152609}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#introduction}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20110201152609}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#introduction}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#introduction}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#introduction}} }} ({{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#introduction}} }}
}}}}}}}}{{#if:2023-02-10 06:14:24 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20110201152609|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://dev.w3.org/html5/webstorage/#introduction}}
|| {{#if: || }}
}}{{#if: Web Storage draft standard.
| {{#if: {{#invoke:WLink|isBracketedLink|Web Storage draft standard.}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://dev.w3.org/html5/webstorage/#introduction%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://dev.w3.org/html5/webstorage/#introduction%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#introduction }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} W3C.</ref>
Datenmodell
DOM Storage speichert Daten in einem assoziativen Array, in dem die Schlüssel und Werte Strings sind. Über eine zusätzliche Programmierschnittstelle zum Zugriff auf strukturierte Daten, möglicherweise auf SQL-Basis, wird derzeit innerhalb der Web Applications Working Group des W3C diskutiert.<ref><templatestyles src="Webarchiv/styles.css" />{{#if:20110201152609
| {{#ifeq: 20110201152609 | *
| {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#sql}} }} (Archivversionen)
| {{#iferror: {{#time: j. F Y|20110201152609}}
| {{#if: || }}Der Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
| {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#sql}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y|20110201152609}} im Internet Archive{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
}}
| {{#if:
| {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
| {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
| 16= {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#sql}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| 9 = {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#sql}} }} {{#ifeq: | [] | [ | ( }}{{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
| #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!{{#if: || }}
}}
| c|{{{webciteID}}}}} {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#sql}} }} ({{#if: {{#if: 2023-02-10 06:14:24 InternetArchiveBot | 2023-02-10 06:14:24 InternetArchiveBot | }} | des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if: | ; }}{{#ifeq: | [] | ] | ) }}
}}
| {{#if:
| Vorlage:Webarchiv/Today
| {{#if:
| Vorlage:Webarchiv/Generisch
| {{#if: Web Storage draft standard. | {{#invoke:WLink|getEscapedTitle|Web Storage draft standard.}} | {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#sql}} }}
}}}}}}}}{{#if:2023-02-10 06:14:24 InternetArchiveBot
| Vorlage:Webarchiv/archiv-bot
}}{{#invoke:TemplatePar|check
|all = url=
|opt = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
|errNS = 0
|template = Vorlage:Webarchiv
|format = *
|preview = 1
}}{{#ifexpr: {{#if:20110201152609|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
}}{{#if:
| {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
| web.archive.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}}
| webcitation.org =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}}
| archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn =
{{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
}}{{#if:
| {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
| }}
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
}}
| {{#if:
| {{#if: || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
}}
}}{{#if:{{#invoke:URLutil|isHostPathResource|http://dev.w3.org/html5/webstorage/#sql}}
|| {{#if: || }}
}}{{#if: Web Storage draft standard.
| {{#if: {{#invoke:WLink|isBracketedLink|Web Storage draft standard.}}
| {{#if: || }}
}}
| {{#if: || }}
}}{{#switch:
|addlarchives|addlpages= {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
}}{{#ifeq: {{#invoke:Str|find|http://dev.w3.org/html5/webstorage/#sql%7Carchiv}} |-1
|| {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://dev.w3.org/html5/webstorage/#sql%7C4}}%7Chttp}} |-1
|| {{#switch: {{#invoke:Webarchiv|getdomain|http://dev.w3.org/html5/webstorage/#sql }}
| abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org =
| #default = {{#if: || }}{{#if: 1 |}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
}}
}}
}} W3C.</ref>
Verwendung
Daten können mit den Funktionen setItem und getItem gespeichert und wieder ausgelesen werden.
localStorage
<syntaxhighlight lang="javascript"> // Speichert ein Key-Value-Paar im localStorage // Die Daten können auch nach einem Neustart des Browsers ausgelesen werden localStorage.setItem('key', 'value');
// Liest den eben gespeicherten Wert aus und zeigt ihn an alert(localStorage.getItem('key')); // value </syntaxhighlight>
sessionStorage
<syntaxhighlight lang="javascript"> // Speichert ein Key-Value-Paar im sessionStorage // Die Daten werden nach dem Schließen des Browsers gelöscht sessionStorage.setItem('key', 'value');
// Liest den eben gespeicherten Wert aus und zeigt ihn an alert(sessionStorage.getItem('key')); // value </syntaxhighlight>
Speichern von JSON-Objekten
In Web Storages können nur Strings gespeichert werden. Soll jedoch ein JSON-Objekt gespeichert werden, muss dieses vor dem Speichern in einen String konvertiert werden. Beim Auslesen kann es dann wieder in ein JSON-Objekt zurückkonvertiert werden.
<syntaxhighlight lang="javascript"> localStorage.setItem('key', JSON.stringify({firstname: 'Peter', lastname: 'Meier'}));
alert(JSON.parse(localStorage.getItem('key')).firstname); // Peter </syntaxhighlight>
Browser-Unterstützung
Web Storage wird von folgenden Browsern unterstützt:<ref>html5rocks.com</ref>
| Browser | ab Version |
|---|---|
| Google Chrome | 4 |
| Mozilla Firefox | 3.5<ref>developer.mozilla.org</ref> |
| Opera | 10.5 |
| Internet Explorer | 8 |
| Edge | 12 |
| Apple Safari | 4 |
| iOS | 3.2 |
| Android | 2.1 |
Datenschutz und Privatsphäre
Die insbesondere dauerhafte Hinterlegung von Schlüsselwerten ermöglicht jeder Website, wiederkehrende Besuche vom selben Endgerät zu erkennen und unterschiedliche Nutzungsprofile zusammenzuführen.
Ähnliche Technologien
- HTTP-Cookies
- Indexed Database API
- Local Shared Objects in Adobe Flash
- Google Gears for IE, Firefox, Apple Safari and Windows Mobile
- Application Cache
Literatur
- Markus Schneider, Matthias Enzmann, Martin Stopczynski: Web-Tracking-Report 2014. (PDF; 4,8 MB) Fraunhofer-Institut für Sichere Informationstechnologie SIT, Hrsg. Michael Waidner. Fraunhofer Verlag, ISBN 978-3-8396-0700-8, 118 Seiten.
Weblinks
Einzelnachweise
<references />
- Wikipedia:Vorlagenfehler/Parameter:URL
- Wikipedia:Vorlagenfehler/Parameter:Linktext
- Wikipedia:Vorlagenfehler/Parameter:Datum
- Wikipedia:Vorlagenfehler/Vorlage:"
- Wikipedia:Weblink offline fix-attempted
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link
- Wikipedia:Vorlagenfehler/Vorlage:Toter Link/URL fehlt
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Archiv-URL
- Wikipedia:Vorlagenfehler/Vorlage:Webarchiv/Linktext fehlt
- JavaScript-Programmierschnittstelle