HTML5 og lokal lagring

July 12  by Eliza

Den lokale lagringsmekanisme er en fin erstatning for cookies, og med HTML5, kan du skrive opp til 5 MB data til en spesiell fil på klienten. Denne filen er ikke kjørbar, og kan ikke holde binære data (bare strenger), så det er rimelig trygt.

Alle sidene som kommer fra domenet har samme lagringsområde, slik at du kan bruke denne mekanismen til å holde data vedvarende mellom flere sider. Dataene forblir også på klientmaskinen (til du fjerner den), så det kan brukes til å holde styr på informasjon over tid.

Den local attributt er et eksempel på en veldig enkel (men kraftig) type datastruktur som kalles en ordbok. Du har allerede brukt ordbøker mange ganger som en webutvikler. Hver bit av data blir lagret i en nøkkel / verdi-par. Nøkkelen identifiserer navnet på informasjon (si 'fornavn'), og verdien er verdien assosiert med den tasten ('Herbert').

HTML-attributter er ordbøker (i <a href = "http://www.google.com">, er href nøkkelen, og http://www.google.com er verdien). CSS-regler er også ordbøker. (I stil regel farge: rød ;, farge er nøkkelen, og rødt er verdien.) Noen programmeringsspråk bruker forskjellige navn på ordbøker, inkludert assosiative arrays og hash tabeller.

Tilgang til lokal lagring er gjennom en spesiell innebygd objekt kalt localstorage (). Denne klassen har et relativt lite antall metoder, men de er ekstremt kraftig og enkel å bruke:

  • localStorage.setItem (nøkkel, verdi): Lagrer en verdi forbundet med en nøkkel. I hovedsak er nøkkelen som en variabel navn, og verdien er verdien assosiert med denne nøkkelen. Du kan lagre alle typer verdien du vil, men det vil bli lagret som strengdata.
  • localStorage.getItem (nøkkel): Henter verdien assosiert med nøkkelen. Igjen, kan du tenke på nøkkelen som en variabel navn. Merk at denne metoden returnerer alltid en strengverdi, så må du kanskje konvertere dataene til en annen type. Hvis nøkkelen ikke finnes, vil du få den spesielle verdien null.
  • localStorage.removeItem (nøkkel): Fjerner et element fra lagring. Nøkkelen og verdien vil begge bli fjernet. Dette kan være nyttig hvis du kjører ut av plass. Du blir tildelt kun 5 MB plass, og når den er full, kan du ikke legge til noe annet.
  • localStorage.length: Returnerer antall nøkkel / verdi-par i databasen. Vanligvis brukes i en sløyfe med nøkkelen () metode for å arbeide med hver nøkkel / verdi-par.
  • localStorage.key (i): Gitt et heltall i, denne metoden finner den tilsvarende tasten. Legg merke til at rekkefølgen av nøklene ikke er garantert. Normalt er denne metoden som brukes i en sløyfe for å hente alle nøklene i databasen. Deretter hver tast brukes til å slå opp den tilsvarende verdi.
  • localStorage.clear (): Fjerner alle nøkkel / verdi-par fra localstorage. Dette er en potensielt ødeleggende kommando, så tenk nøye før du bruker den. Per definisjon er localstorage data ikke sikkerhetskopiert på serveren (eller noe annet). Når det har gått, er det virkelig gått.

Hvis du prøver å lagre mer enn 5 MB data fra samme domene, vil Java kaste en "QUOTA_EXCEEDED_ERR" unntak. Det er for tiden ingen måte å endre mengden lagringsplass tillatt, selv med brukerens tillatelse.

Utrolig nok, den lokale lagringsmekanisme fungerer veldig bra på alle dagens nettlesere, selv Internet Explorer.

Selvfølgelig, helst en webside kan skrive data til klientmaskinen, det er noe bekymring for personvern og sikkerhet. Imidlertid blir data lagret på klientmaskinen, slik at det aldri blir overført til serveren (i motsetning til data fra informasjonskapsler). Dataene lagres på klientmaskinen og tilhører kunden. Den 5MB grensen gir en god del plass til web-applikasjoner, men selv om det er fylt, vil det ikke tette opp moderne maskiner. Til slutt, lagres dataene i en ren tekst-format, og det kan ikke bli satt i en egen fil - så det ville være vanskelig å bruke denne teknologien til å lage virus og andre plagsomme kode skadedyr.

Det kan virke begrensende for å lagre data i disse enkle navn / verdi-par, men du kan faktisk lagre svært komplekse data ved hjelp av denne mekanismen. Verdien kan være alle typer, inkludert de svært rike XML og JSON data lagring mekanismer.