Hvad er IndexedDB, og hvornår bruger hjemmesider det?

IndexedDB er et avanceret lager i browseren til store, strukturerede data. Se, hvad det er, hvordan det virker, og hvornår hjemmesider har brug for det.

Kladde

IndexedDB er browserens indbyggede lager til store, strukturerede data. Se, hvad det er, hvordan det virker, og hvornår hjemmesider bruger det i stedet for local storage eller session storage.

Har du prøvet en webapp, der blev ved med at virke, selv da nettet røg? Eller en, der føltes lige så hurtig som en app installeret på din telefon, hvor store mængder data indlæses med det samme? Bag de oplevelser er der som regel noget, der kan meget mere end de enkle browserlagre, vi har set på indtil nu. Det er IndexedDB.

IndexedDB er den mest kraftfulde type lager i browseren, og den ligger et niveau over det, local storage og session storage er lavet til. De fleste ejere af virksomhedshjemmesider kommer aldrig til at bruge det direkte, men når du kender det, har du et komplet billede af, hvad browsere kan gemme.

Hvad er IndexedDB?

IndexedDB er en lavniveaudatabase, der er bygget ind i browseren. I modsætning til local storage og session storage, som gemmer enkle nøgle-værdi-par af tekst, kan IndexedDB gemme strukturerede data: objekter, lister, filer og binære data. Det kan søges i, indekseres og kan gemme langt flere data end de andre typer browserlager.

Navnet giver et fingerpeg om, hvordan det virker. Det bruger indekser, som er som opslagstabeller, til hurtigt at finde gemte poster uden at skulle søge i alt. Det gør det praktisk til at gemme og hente store mængder struktureret information i selve browseren.

Hvordan adskiller IndexedDB sig fra andre browserlagre?

Local storage gemmer små tekstværdier og beholder dem uendeligt. Session storage gør det samme, men kun i den aktuelle fanesession. Begge er enkle og begrænsede. IndexedDB er fundamentalt anderledes i omfang og muligheder.

Lagerplads er en af hovedforskellene. Local storage er typisk begrænset til 5 til 10 megabyte, mens IndexedDB kan gemme hundredvis af megabyte eller mere, afhængigt af browseren og enheden. Det gemmer også komplekse datastrukturer direkte, ikke kun ren tekst. Og det understøtter forespørgsler, så hjemmesiden kan søge og filtrere i de gemte poster i stedet for kun at hente en værdi ud fra den præcise nøgle.

Hvad bruger hjemmesider IndexedDB til?

Funktioner uden internet

Webapps, der skal virke uden internetforbindelse, bruger IndexedDB til at gemme data lokalt på enheden. En notatapp, et projektstyringsværktøj eller en e-mailklient kan gemme poster i IndexedDB, så den besøgende stadig kan læse, oprette og redigere indhold, selv når de er offline. Ændringerne bliver synkroniseret med serveren, når forbindelsen er tilbage.

Store datasæt i browseren

Programmer, der arbejder med store mængder data, som kort, komplekse filtre eller store produktkataloger, kan bruge IndexedDB til at cache de data lokalt. Det mindsker, hvor ofte programmet skal hente data fra serveren, og gør oplevelsen mærkbart hurtigere for brugeren.

Lagring af filer

IndexedDB kan gemme filer direkte i browseren. Det er nyttigt til programmer, hvor brugerne uploader eller laver indhold, der skal være tilgængeligt på tværs af sessioner, før det sendes til serveren.

Bruger de fleste hjemmesider IndexedDB?

Nej. IndexedDB bruges af komplekse webapplikationer, ikke af almindelige virksomhedshjemmesider. En marketinghjemmeside, en hjemmeside for serviceerhverv, en webshop og de fleste hjemmesider med indhold har ikke brug for det. Deres behov for lagring dækkes fint af cookies, local storage og session storage.

På din egen hjemmeside tager den platform, du bygger på, sig af alle valg om lagring. WEMASYs hjemmesidebygger bruger automatisk den rigtige type lager til hver funktion. Vil du se alle typer browserlager side om side og hvordan de hænger sammen, kan du læse typer af browserlagring.

Ofte stillede spørgsmål

Er IndexedDB en rigtig database?

Det er en database i den forstand, at den gemmer strukturerede data, understøtter indeksering og tillader forespørgsler. Men den er meget anderledes end en database på en server. Den kører helt i browseren på den besøgendes enhed, ikke på en ekstern server. Den er lavet til lagring hos brugeren, ikke til den slags delt datastyring for flere brugere, som serverdatabaser klarer. Med WEMASYs hjemmesidebygger kan du sætte det op direkte på din hjemmeside.

Hvor mange data kan IndexedDB gemme?

Meget mere end local eller session storage. De fleste browsere lader IndexedDB bruge en stor del af den ledige diskplads, ofte hundredvis af megabyte eller mere. Browseren kan bede brugeren om tilladelse, hvis en hjemmeside forsøger at gemme en meget stor mængde. Den præcise grænse varierer efter browser og kan også afhænge af, hvor meget ledig plads der er på enheden.

Bliver IndexedDB-data gemt, når browseren lukkes?

Ja. IndexedDB-data bliver gemt som standard, på samme måde som i local storage. De bliver i browseren, indtil brugeren rydder sine browserdata, eller indtil hjemmesiden fjerner dem. Det er det, der gør IndexedDB velegnet til programmer, der kan køre offline, hvor data skal overleve mellem sessioner.

Er IndexedDB sikkert?

IndexedDB er isoleret for hver hjemmeside, så én hjemmeside kan ikke få adgang til en andens data. Men ligesom andre typer browserlager kan scripts, der kører på siden, få adgang til det. Følsomme data som adgangskoder, betalingsoplysninger og personlige oplysninger skal aldrig gemmes i IndexedDB. Det passer godt til programdata og stort indhold, men må ikke bruges i stedet for sikker lagring på serveren.

Kan besøgende rydde deres IndexedDB-data?

Ja. Når man rydder browserdata i browserens indstillinger, fjernes IndexedDB sammen med cookies, local storage og cache. De besøgende kan også rydde det via udviklerværktøjer. Programmer, der er afhængige af IndexedDB til vigtige data, bør tage højde for det ved at synkronisere data til en server, når der er forbindelse, så de lokale data aldrig er den eneste kopi.

Skal jeg kende til IndexedDB for at bygge en hjemmeside?

Nej. IndexedDB er et værktøj for udviklere, der bygger komplekse webapplikationer. Som hjemmesideejer på en platform kommer du aldrig til at bruge det direkte. Din hjemmesidebygger tager sig af valg om browserlagring i baggrunden. Det er nyttigt at kende IndexedDB for at få et komplet billede af, hvordan browsere virker, men det har ingen praktisk betydning for, hvordan du driver eller styrer din hjemmeside til daglig.

Brug det med det samme
på din egen hjemmeside.

Start gratis med WEMASY, og byg din side på få minutter.