Vad är IndexedDB och när använder webbplatser det?

IndexedDB är ett avancerat lagringssystem i webbläsaren för stora, strukturerade data. Lär dig hur det fungerar och när webbplatser behöver det.

Utkast

IndexedDB är webbläsarens inbyggda lagringssystem för stora, strukturerade data. Lär dig vad det är, hur det fungerar och när webbplatser använder det i stället för local eller session storage.

Har du någon gång använt en webbapp som fortsatte fungera även när internetanslutningen föll bort? Eller en som kändes lika snabb som en inbyggd app på telefonen, med stora mängder data som laddades direkt? Bakom de upplevelserna ligger oftast något som är mycket mer kapabelt än de enkla lagringsverktyg i webbläsaren som vi har gått igenom hittills. Det är IndexedDB.

IndexedDB är den mest kapabla lagringstypen i webbläsaren, och den ligger på en nivå över vad local storage och session storage är gjorda för. De flesta företagare med webbplats kommer aldrig att arbeta direkt med det, men om du förstår det får du en komplett bild av vad webbläsare kan lagra.

Vad är IndexedDB?

IndexedDB är en lågnivådatabas som är inbyggd i webbläsaren. Till skillnad från local storage och session storage, som lagrar enkla nyckel-värde-par av text, kan IndexedDB lagra strukturerad data: objekt, listor, filer och binärdata. Den är sökbar, indexerbar och kan lagra mycket mer data än de andra lagringstyperna i webbläsaren.

Namnet ger en ledtråd om hur det fungerar. Det använder index, som är som uppslagstabeller, för att snabbt hitta lagrade poster utan att behöva söka igenom allt. Det gör det praktiskt för att lagra och hämta stora mängder strukturerad information i själva webbläsaren.

Hur skiljer sig IndexedDB från annan webbläsarlagring?

Local storage lagrar små textvärden och behåller dem tills vidare. Session storage gör samma sak men bara under den aktuella fliksessionen. Båda är enkla och begränsade. IndexedDB är i grunden annorlunda i omfattning och förmåga.

Lagringskapaciteten är en av de största skillnaderna. Medan local storage oftast är begränsat till 5 till 10 megabyte kan IndexedDB lagra hundratals megabyte eller mer, beroende på webbläsare och enhet. Det lagrar också komplexa datastrukturer direkt, inte bara ren text. Och det stöder frågor, vilket betyder att webbplatsen kan söka i och filtrera lagrade poster i stället för att bara hämta ett värde med dess exakta nyckel.

Vad använder webbplatser IndexedDB till?

Offlinefunktioner

Webbappar som behöver fungera utan internetanslutning använder IndexedDB för att lagra data lokalt på enheten. En anteckningsapp, ett projektverktyg eller en e-postklient kan spara poster i IndexedDB så att besökaren kan läsa, skapa och redigera innehåll även offline. Ändringarna synkas tillbaka till servern när anslutningen är återställd.

Stora datamängder i webbläsaren

Applikationer som arbetar med stora datamängder, som kartor, komplexa filter eller stora produktkataloger, kan använda IndexedDB för att cacha den datan lokalt. Det minskar hur ofta appen behöver hämta data från servern och gör upplevelsen betydligt snabbare för användaren.

Fillagring

IndexedDB kan lagra filer direkt i webbläsaren. Det gör det användbart för appar där användare laddar upp eller skapar innehåll som måste vara tillgängligt mellan sessioner innan det skickas till servern.

Använder de flesta webbplatser IndexedDB?

Nej. IndexedDB används av komplexa webbapplikationer, inte av typiska företagswebbplatser. En marknadsföringssida, en tjänstewebbplats, en webbutik och de flesta innehållsdrivna webbplatser har inget behov av det. Deras lagringsbehov täcks väl av cookies, local storage och session storage.

För din egen webbplats sköter plattformen du bygger på alla beslut om lagring. WEMASYs webbplatsbyggare använder rätt lagringstyp för varje funktion automatiskt. Om du vill se alla typer av webbläsarlagring sida vid sida och hur de passar ihop kan du läsa typer av webbläsarlagring.

Vanliga frågor

Är IndexedDB en riktig databas?

Det är en databas i den meningen att den lagrar strukturerad data, stöder indexering och tillåter frågor. Men den skiljer sig mycket från en databas på serversidan. Den körs helt i webbläsaren på besökarens enhet, inte på en fjärrserver. Den är gjord för lagring på klientsidan, inte för den sortens delade datahantering för flera användare som serverdatabaser sköter. Med WEMASYs webbplatsbyggare kan du ställa in det här direkt på din webbplats.

Hur mycket data kan IndexedDB lagra?

Mycket mer än local eller session storage. De flesta webbläsare låter IndexedDB använda en betydande del av det tillgängliga diskutrymmet, ofta hundratals megabyte eller mer. Webbläsaren kan be användaren om tillåtelse om en webbplats försöker lagra en mycket stor mängd. Den exakta gränsen varierar mellan webbläsare och kan också bero på hur mycket ledigt utrymme som finns på enheten.

Finns IndexedDB-data kvar när webbläsaren stängs?

Ja. IndexedDB-data är beständig som standard, ungefär som local storage. Den ligger kvar i webbläsaren tills användaren rensar sin webbläsardata eller tills webbplatsen tar bort den. Den beständigheten gör IndexedDB lämpligt för applikationer som fungerar offline och där data måste finnas kvar mellan sessioner.

Är IndexedDB säkert?

IndexedDB är isolerat per webbplats, så en webbplats kan inte komma åt en annan webbplats data. Men precis som andra typer av webbläsarlagring är det åtkomligt för skript som körs på sidan. Känslig data som lösenord, betaluppgifter och personuppgifter bör aldrig lagras i IndexedDB. Det passar bra för applikationsdata och stort innehåll men ska inte användas som ersättning för säker lagring på servern.

Kan besökare rensa sin IndexedDB-data?

Ja. När webbläsardata rensas via webbläsarens inställningar försvinner IndexedDB tillsammans med cookies, local storage och cache. Besökare kan också rensa det via utvecklarverktygen. Applikationer som är beroende av IndexedDB för viktig data bör ta hänsyn till det genom att synka data till en server när en anslutning finns, så att den lokala datan aldrig är den enda kopian.

Behöver jag kunna något om IndexedDB för att bygga en webbplats?

Nej. IndexedDB är ett verktyg för utvecklare som bygger komplexa webbapplikationer. Som webbplatsägare som använder en plattform kommer du aldrig att arbeta direkt med det. Din webbplatsbyggare sköter besluten om webbläsarlagring i bakgrunden. Det är nyttigt att förstå IndexedDB för att få en komplett bild av hur webbläsare fungerar, men det har ingen praktisk betydelse för hur du driver eller sköter din webbplats i vardagen.

Använd det direkt
på din egen webbplats.

Börja gratis med WEMASY och bygg din sajt på några minuter.