Lagring på klientsiden er avgjørende for nettapplikasjoner. Det er kanskje ikke like skuddsikkert som lagring på serversiden, men uten det ville nettapper vært i stand til å implementere mange moderne funksjoner. Alle typer funksjoner avhenger av lagring på klientsiden, fra økter i spill til handlekurver på e-handelsnettsteder.

Lagring på klientsiden gjør det også mulig for nettapper å implementere en personvernsentrisk arkitektur. Du kan bruke den til å sikre at sensitive data aldri forlater en brukers enhet.

Hva er lagring på klientsiden?

I webutvikling refererer lagring på klientsiden til de ulike måtene nettlesere kan lagre data på. En applikasjon kan deretter bruke disse dataene til å gi funksjonalitet til brukere. Lagring på klientsiden er kritisk av flere grunner:

  • Data som er lagret på klienten er betydelig raskere å få tilgang til, og appen din kan få tilgang til dem uten Internett.
  • Lagring på klientsiden gjør det enklere for applikasjonen din å huske preferansene til hver bruker.
  • instagram viewer
  • Å lagre noen data permanent på klienten gjør det enklere å beskytte brukernes personvern.
  • Det er dyrt å lagre alle applikasjonsdata på serveren, spesielt i store skalaer.

Det finnes flere forskjellige former for lagring på klientsiden du kan bruke i nettappene dine.

Informasjonskapsler

En nettleserinformasjonskapsel er et stykke nøkkel-/verdidata som er lagret som en streng på datamaskinen din. Nettlesere sender alle informasjonskapsler for et bestemt nettsted til nettstedets server på hver forespørsel. Informasjonskapsler var den første (og en stund den eneste) typen lagring på klientsiden.

Det er ingen offisiell grense for størrelsen på en informasjonskapsel, men individuelle nettlesere setter varierende begrensninger på størrelsen og antallet informasjonskapsler du kan angi. De RFC 6265 del 6.1 angir følgende minimumsfunksjoner for informasjonskapsler som nettlesere (brukeragenter) bør gi:

Praktiske implementeringer av brukeragenter har begrensninger på antall og størrelse på informasjonskapsler de kan lagre. Brukeragenter for generell bruk BØR gi hver av følgende minimumsfunksjoner:

  • Minst 4096 byte per informasjonskapsel (målt ved summen av lengden på informasjonskapselens navn, verdi og attributter).
  • Minst 50 informasjonskapsler per domene.
  • Minst 3000 informasjonskapsler totalt.

Informasjonskapsler kan bli værende i nettleseren i ulik tid. Noen utløper på slutten av en sideøkt, og noen har vilkårlige utløpsdatoer som kan strekke seg så langt som måneder inn i fremtiden.

Nettlesere oppretter en sideøkt når du åpner en ny fane, og de avslutter den når du lukker fanen eller nettleseren. Hvis du laster inn eller oppdaterer siden, vil ikke nettleseren avslutte sideøkten.

Brukstilfeller for informasjonskapsler

Informasjonskapsler er best egnet til å lagre små databiter som serveren ofte trenger å lese eller endre. Hvorfor?

  • Informasjonskapsler knyttes automatisk til alle nettverksforespørsler
  • Informasjonskapsler kan bare lagre små mengder strengdata.

Du kan bruke informasjonskapsler til å identifisere en bruker (som en økt-ID), registrere et sidebesøk for bokmerkeformål eller lagre et spills høye poengsum.

Lokal lagring

Som en informasjonskapsel er localStorage et nøkkel-/verdilager som lagrer strengdata. Mens begge lagringstypene er like, er lokallagring og informasjonskapsler forskjellige på flere måter:

  • LocalStorage avhenger av JavaScript.
  • Data i localStorage ligger primært i nettleseren. Du må bevisst sende den til serveren, i stedet for at nettleseren sender den på hver forespørsel.
  • LocalStorage har ingen utløpsdato. Den vedvarer på klienten til en utvikler sletter den med JavaScript eller brukeren tømmer nettleserlagringen.
  • LocalStorage har mye større lagringskapasitet. De WHATWG-spesifikasjon angir ikke en hard grense, men ifølge Wikipedia, minimumsstørrelsen på localStorage blant de store nettleserne er 5 MB:

Nettlesere begrenser informasjonskapsler til 4 kilobyte. Nettlagring gir langt større lagringskapasitet:

  • Opera 10.50+ tillater 5 MB
  • Safari 8 tillater 5 MB
  • Firefox 34 tillater 10 MB
  • Google Chrome tillater 10 MB per opprinnelse
  • Internet Explorer tillater 10 MB per lagringsområde

Brukssaker for LocalStorage

LocalStorage er perfekt for å lagre en stor mengde data som serveren sjelden trenger å referere til. Dette kan være en applikasjons brukerinnstillinger, temakonfigurasjonsdetaljer eller dataene i et nylig utfylt skjema. Dette er fordi localStorage har en mye større lagringsgrense enn informasjonskapsler, men du må gå gjennom ekstra innsats for å sende dataene til serveren.

Hvis du lagrer dataene som JSON, kan du lagre rimelig komplekse data ved å bruke localStorage, selv om den bare kan lagre strenger.

LocalStorage er sårbar for XSS-angrep, så du bør ikke lagre sensitive klientdata i den.

SessionStorage

SessionStorage er et nøkkel-/verdilager som fungerer nesten det samme som localStorage, bortsett fra én ting. De lagrede dataene vedvarer bare i lengden på en sideøkt.

Brukstilfeller for SessionStorage

Du kan bruke SessionStorage til å lagre samme type data som localStorage, men bare når dataene ikke trenger å vedvare utover en sideøkt.

IndeksertDB

IndexedDB er et kraftig nettleser-API for lagring av store mengder strukturerte data. Det er en transaksjonell, objektorientert database som lagrer data i nøkkel/verdi-par.

Hvis du har å gjøre med mindre mengder data, er localStorage/sessionStorage det bedre og enklere valget. Dessverre er de begrenset av lagringskapasiteten og det faktum at de bare kan lagre strengdata. IndexedDB lar ikke bare lagre forskjellige typer data, inkludert filer/binære data, men den kan også lagre mye mer data. IndexedDB konstruerer også indekser av innholdet for å tillate raskt søk i databasen.

Brukstilfeller for IndexedDB

IndexedDB er i hovedsak en NoSQL-database i nettleseren, og den kan lagre svært store datamengder. Enhver brukstilfelle som krever lagring av over 10 MB med data er passende for IndexedDB.

I motsetning til andre former for nettleserlagring, er ikke IndexedDB begrenset til lagring av strenger. IndexedDB kan lagre data av alle standard JavaScript-typer. Hvis du bygger en nettapplikasjon for å fungere hovedsakelig offline, kan du bruke IndexedDB til å lagre alle applikasjonens data.

Oppbevaring på klientsiden er fleksibel og kraftig

Begrepet lagring på klientsiden refererer til lagring av applikasjonsdata i nettleseren. Lagring på klientsiden er avgjørende for at de fleste moderne webapplikasjoner skal fungere. Det finnes ulike typer lagring på klientsiden: informasjonskapsler, lokal/sessionStorage og IndexedDB.

Alle typer nettleserlagring har varierende begrensninger på kapasiteten og typen data de kan lagre. Informasjonskapsler er den mest begrensede typen, lokal/sessionStorage er den mest praktiske, og IndexedDB er den kraftigste.