IndexeradDB

IndexedDB är ett JavaScript - applikationsprogrammeringsgränssnitt ( API ) för lagring på klientsidan av stora mängder strukturerad data, inklusive filer / blobbar . Det är med andra ord ett NoSQL - datalager i JSON-format inuti webbläsaren . Standarden har utvecklats av W3C och implementerad i webbläsare sedan 2011. [ett]

Historik

Stöd för IndexedDB lades till i Firefox version 4, [2] Google Chrome version 11, [3] och Internet Explorer version 10. [4] Safari lade så småningom till stöd i version 8. [5]

Web SQL-databasen var en föregångare API som utvecklats av Apple . [6] Men Mozilla motsatte sig dess standardisering eftersom inga alternativ till SQLite -motorn erbjöds . [7] [8] Som sådan har den avskaffats till förmån för IndexedDB .

Grundläggande principer

I databasen kan IndexedDB- webbplatser permanent lagra och läsa klientlagringsdata. Varje domän har sitt eget lagringsområde, åtkomst till data lagrad i en annan domän tillhandahålls inte i enlighet med Same Origin Policy .  Mängden tillgängligt minne varierar beroende på webbläsare, det finns vanligtvis en fast gräns som inte kan överskridas och en mjuk gräns från vilken användaren först måste godkänna lagring. [9] I princip är lagring permanent, men webbläsare erbjuder sina användare möjligheten att radera lagrad data. [tio]

En databas är en objektdatabas, vanligtvis lagrade JavaScript-objekt, med en av posterna som nyckeln för att hämta data. Index kan också skapas på andra lagrade objektposter för att möjliggöra effektiva uppslagningar.

Databasåtkomst är asynkron: klienten gör en begäran och registrerar återuppringningsfunktioner. Så snart resultatet av begäran är känt kommer han att informeras om det och, i händelse av framgång, kommer de begärda uppgifterna att tillhandahållas, i händelse av fel, orsaken. Vid åtkomst används transaktioner för att säkerställa datakonsistens, även om till exempel två samtidigt öppna flikar har oberoende åtkomst till databasen.

Implementeringar

Den exakta implementeringen av databasen är inte fixerad, men det är ett B-träd . Alla moderna webbläsare stödjer standarden då den ständigt utvecklas, inte alltid i den aktuella versionen. I Microsofts webbläsare är gränssnittet endast delvis implementerat. [10] Äldre versioner av webbläsarens API har fortfarande delvis prefixet av utvecklaren. [elva]

Alternativ

Web Storage är ett mycket enklare alternativ till datalagring, men med färre funktioner, designat för en liten mängd data.

En alternativ standard, som är en databas som kan nås via SQL - frågor, var Web SQL . Denna standard implementerades dock bara i ett fåtal webbläsare, så den avbröts till förmån för IndexedDB . [12]

I äldre webbläsare kan IndexedDB modelleras med polyfills .  [13]

Se även

Anteckningar

  1. IndexedDB API . W3.org. Arkiverad från originalet den 2 februari 2011.
  2. IndexedDB - MDC Doc Center  (engelska)  (länk ej tillgänglig) . developers.mozilla.org. Arkiverad från originalet den 26 maj 2012.
  3. Webbplattformens  status . The Chromium Project (21 maj 2012). Arkiverad från originalet den 4 mars 2017.
  4. IndexedDB , MSDN, 2012-03-14 , < http://msdn.microsoft.com/en-us/library/ie/hh673548(v=vs.85).aspx > Arkiverad 26 mars 2015 på Wayback Machine 
  5. ↑ Vad är nytt i macOS  . Äpple. Arkiverad från originalet den 12 december 2017.
  6. Shankland, Stephen Konsensus dyker upp för viktig webbappstandard |  Deep Tech - CNET News . News.cnet.com (12 mars 2010). Arkiverad från originalet den 8 april 2013.
  7. ↑ Tja, jag är tillbaka : Det är svårt att inte implementera funktioner  . weblogs.mozillazine.org. Arkiverad från originalet den 6 augusti 2011.
  8. Beyond HTML5: Databas APIs and the Road to IndexedDB . Datum för åtkomst: 8 februari 2019. Arkiverad från originalet den 14 februari 2021.
  9. Raymond Camden. IndexedDB and Limits  ( 17 april 2015). Arkiverad från originalet den 9 februari 2019.
  10. ↑ 1 2 Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht  (tyska) (19 september 2017). - Översikt över webbläsarstöd. Arkiverad från originalet den 9 februari 2019.
  11. ↑ Kan jag använda : IndexedDB  . Arkiverad från originalet den 8 april 2017.
  12. Ian Hickson. Web SQL-  databas . Arkiverad från originalet den 3 februari 2019.
  13. Parashuram Narasimhan. Använder IndexedDB API idag – IndexedDB  polyfills . Mozilla Hacks (31 juli 2012). Arkiverad från originalet den 9 februari 2019.

Länkar