IndexedDB este o interfață de programare a aplicației JavaScript ( API ) pentru stocarea pe partea client a unor cantități mari de date structurate, inclusiv fișiere / blob -uri . Cu alte cuvinte, este un magazin de date NoSQL în format JSON în interiorul browserului . Standardul a fost dezvoltat de W3C și implementat în browsere din 2011. [unu]
Suport pentru IndexedDB a fost adăugat în Firefox versiunea 4, [2] Google Chrome versiunea 11, [3] și Internet Explorer versiunea 10. [4] Safari a adăugat în cele din urmă suport în versiunea 8. [5]
Baza de date Web SQL a fost un predecesor API dezvoltat de Apple . [6] Dar Mozilla s-a opus standardizării sale, deoarece nu au fost oferite alternative la motorul SQLite . [7] [8] Ca atare, a fost depreciat în favoarea IndexedDB .
În baza de date , site-urile IndexedDB pot stoca și citi permanent datele de stocare ale clientului. Fiecare domeniu are propria sa zonă de stocare, accesul la datele stocate în alt domeniu nu este oferit în conformitate cu Politica Aceeași Origine . Cantitatea de memorie disponibilă variază în funcție de browser, există de obicei o limită fixă care nu poate fi depășită și o limită soft de la care utilizatorul trebuie mai întâi să fie de acord cu stocarea. [9] În principiu, stocarea este permanentă, dar browserele oferă utilizatorilor lor opțiunea de a șterge datele stocate. [zece]
O bază de date este o bază de date cu obiecte, în mod obișnuit obiecte JavaScript stocate, cu una dintre intrări ca cheie, cu ajutorul căreia se pot extrage datele. Indecșii pot fi creați și pe alte intrări de obiecte stocate pentru a permite căutări eficiente.
Accesul la baza de date este asincron: clientul face o cerere și înregistrează funcțiile de apel invers. Imediat ce se cunoaște rezultatul solicitării, acesta va fi informat despre aceasta și, în caz de succes, i se vor furniza datele solicitate, în caz de eroare, motivul. La accesare, tranzacțiile sunt folosite pentru a asigura consistența datelor, chiar dacă, de exemplu, două file deschise simultan au acces independent la baza de date.
Implementarea exactă a bazei de date nu este fixă, totuși este un arbore B. Toate browserele moderne acceptă standardul, deoarece acesta este în continuă evoluție, nu întotdeauna în versiunea actuală. În browserele Microsoft, interfața este implementată doar parțial. [10] Versiunile mai vechi ale API-ului browser sunt încă parțial prefixate de dezvoltator. [unsprezece]
Stocarea web este o alternativă mult mai simplă la stocarea datelor, dar cu mai puține funcții, concepute pentru o cantitate mică de date.
Un standard alternativ, care este o bază de date care poate fi accesată prin interogări SQL , a fost Web SQL . Cu toate acestea, acest standard a fost implementat doar în câteva browsere, așa că a fost întrerupt în favoarea IndexedDB . [12]
În browserele mai vechi , IndexedDB poate fi modelat cu polyfills . [13]