Az IndexedDB egy JavaScript alkalmazásprogramozási felület ( API ) nagy mennyiségű strukturált adat, köztük fájlok / blobok kliensoldali tárolására . Más szóval, ez egy NoSQL adattár JSON formátumban a böngészőben . A szabványt a W3C fejlesztette ki, és 2011 óta alkalmazzák a böngészőkben. [egy]
Az IndexedDB támogatása hozzáadásra került a Firefox 4-es verziójában, [2] a Google Chrome 11-es verziójában, [3] és az Internet Explorer 10-es verziójában. [4] A Safari végül hozzáadta a támogatást a 8-as verzióhoz. [5]
A Web SQL adatbázis az Apple által kifejlesztett API elődje volt . [6] A Mozilla azonban ellenezte a szabványosítását, mert nem kínáltak alternatívát az SQLite motorhoz . [7] [8] Mint ilyen, az IndexedDB javára elavulttá vált .
Az adatbázisban az IndexedDB webhelyek tartósan tárolhatják és olvashatják az ügyféltárolási adatokat. Minden tartománynak saját tárterülete van, a másik tartományban tárolt adatokhoz való hozzáférés nem az azonos származási szabályzatnak megfelelően biztosított . A rendelkezésre álló memória mennyisége böngészőnként változik, általában van egy rögzített korlát, amelyet nem lehet túllépni, és egy puha korlát, amelytől a felhasználónak először el kell fogadnia a tárolást. [9] A tárolás elvileg állandó, de a böngészők lehetőséget kínálnak felhasználóiknak a tárolt adatok törlésére. [tíz]
Az adatbázis egy objektum-adatbázis, általában tárolt JavaScript-objektumok, amelyek egyik bejegyzése a kulcs, amellyel az adatok lekérhetők. Indexek más tárolt objektum bejegyzéseken is létrehozhatók a hatékony keresés érdekében.
Az adatbázis-hozzáférés aszinkron: a kliens kérést ad, és visszahívási funkciókat regisztrál. Amint a megkeresés eredménye ismertté válik, arról tájékoztatjuk, és siker esetén megadjuk a kért adatokat, hiba esetén az okot. A hozzáférés során a tranzakciók az adatok konzisztenciájának biztosítására szolgálnak, még akkor is, ha például két, egyidejűleg megnyitott lap független hozzáféréssel rendelkezik az adatbázishoz.
Az adatbázis pontos megvalósítása nem rögzített, de ez egy B-fa . Minden modern böngésző támogatja a szabványt, mivel az folyamatosan fejlődik, nem mindig az aktuális verzióban. A Microsoft böngészőkben a felület csak részben valósult meg. [10] A böngésző API régebbi verzióit továbbra is részben a fejlesztő előtagolja. [tizenegy]
A Web Storage az adattárolás sokkal egyszerűbb alternatívája, de kevesebb szolgáltatással, kis mennyiségű adat tárolására tervezve.
Egy alternatív szabvány, amely egy SQL lekérdezéseken keresztül elérhető adatbázis , a Web SQL volt . Ezt a szabványt azonban csak néhány böngészőben implementálták, így az IndexedDB javára megszűnt . [12]
A régebbi böngészőkben az IndexedDB polifillekkel modellezhető . [13]