IndekseretDB

IndexedDB er en JavaScript - applikationsprogrammeringsgrænseflade ( API ) til lagring på klientsiden af ​​store mængder strukturerede data, inklusive filer / blobs . Det er med andre ord et NoSQL -datalager i JSON-format inde i browseren . Standarden er udviklet af W3C og implementeret i browsere siden 2011. [en]

Historie

Understøttelse af IndexedDB blev tilføjet i Firefox version 4, [2] Google Chrome version 11, [3] og Internet Explorer version 10. [4] Safari tilføjede til sidst support i version 8. [5]

Web SQL-databasen var en forgænger API udviklet af Apple . [6] Men Mozilla modsatte sig standardiseringen, fordi der ikke blev tilbudt alternativer til SQLite -motoren . [7] [8] Som sådan er det blevet forældet til fordel for IndexedDB .

Grundlæggende principper

I databasen kan IndexedDB- websteder permanent gemme og læse klientlagerdata. Hvert domæne har sit eget lagerområde, adgang til data gemt på et andet domæne gives ikke i overensstemmelse med Same Origin Policy .  Mængden af ​​tilgængelig hukommelse varierer efter browser, der er normalt en fast grænse, der ikke kan overskrides, og en blød grænse, hvorfra brugeren først skal acceptere lagring. [9] I princippet er lagring permanent, men browsere giver deres brugere mulighed for at slette lagrede data. [ti]

En database er en objektdatabase, typisk lagrede JavaScript-objekter, med en af ​​posterne som nøglen, hvormed data kan hentes. Indekser kan også oprettes på andre lagrede objektposter for at muliggøre effektive opslag.

Databaseadgang er asynkron: klienten foretager en anmodning og registrerer tilbagekaldsfunktioner. Så snart resultatet af anmodningen er kendt, vil han blive informeret om det, og i tilfælde af succes, vil de ønskede data blive oplyst, i tilfælde af fejl, årsagen. Ved adgang bruges transaktioner til at sikre datakonsistens, også selvom f.eks. to samtidigt åbne faner har uafhængig adgang til databasen.

Implementeringer

Den nøjagtige implementering af databasen er ikke fast, men det er et B-træ . Alle moderne browsere understøtter standarden, da den hele tiden udvikler sig, ikke altid i den aktuelle version. I Microsoft-browsere er grænsefladen kun delvist implementeret. [10] Ældre versioner af browser-API'en er stadig delvist præfikset af udvikleren. [elleve]

Alternativer

Web Storage er et meget enklere alternativ til datalagring, men med færre funktioner, designet til en lille mængde data.

En alternativ standard, som er en database, der kan tilgås via SQL - forespørgsler, var Web SQL . Denne standard blev dog kun implementeret i nogle få browsere, så den blev afbrudt til fordel for IndexedDB . [12]

I ældre browsere kan IndexedDB modelleres med polyfills .  [13]

Se også

Noter

  1. IndexedDB API . W3.org. Arkiveret fra originalen den 2. februar 2011.
  2. IndexedDB - MDC Doc Center  (engelsk)  (link ikke tilgængeligt) . developers.mozilla.org. Arkiveret fra originalen den 26. maj 2012.
  3. Webplatformstatus  . _ Chromium-projektet (21. maj 2012). Arkiveret fra originalen den 4. marts 2017.
  4. IndexedDB , MSDN, 2012-03-14 , < http://msdn.microsoft.com/en-us/library/ie/hh673548(v=vs.85).aspx > Arkiveret 26. marts 2015 på Wayback Machine 
  5. ↑ Hvad er nyt i macOS  . Æble. Arkiveret fra originalen den 12. december 2017.
  6. Shankland, Stephen Konsensus opstår for den vigtigste webapp-standard |  Deep Tech - CNET News . News.cnet.com (12. marts 2010). Arkiveret fra originalen den 8. april 2013.
  7. ↑ Nå, jeg er tilbage : Det er svært at ikke implementere funktioner  . weblogs.mozillazine.org. Arkiveret fra originalen den 6. august 2011.
  8. Beyond HTML5: Database API'er og vejen til indekseret DB . Dato for adgang: 8. februar 2019. Arkiveret fra originalen 14. februar 2021.
  9. Raymond Camden. IndexedDB and Limits  ( 17. april 2015). Arkiveret fra originalen den 9. februar 2019.
  10. ↑ 1 2 Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht  (tysk) (19. september 2017). - Oversigt over browserunderstøttelse. Arkiveret fra originalen den 9. februar 2019.
  11. ↑ Kan jeg bruge : IndexedDB  . Arkiveret fra originalen den 8. april 2017.
  12. Ian Hickson. Web SQL-  database . Arkiveret fra originalen den 3. februar 2019.
  13. Parashuram Narasimhan. Brug af IndexedDB API i dag – IndexedDB  polyfills . Mozilla Hacks (31. juli 2012). Arkiveret fra originalen den 9. februar 2019.

Links