Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum dla Lipiec 3rd, 2012

IndexedDB

Autor: Piotr Karpiuk o 3. lipca 2012

W zakresie trwałego przechowywania danych po stronie klienta aplikacji webowych mamy obecnie sporo mechanizmów do wyboru: Web Storage, File API, jak również bazy danych. Co do baz danych, istnieją dwie alternatywy:

  • WebSQL, czyli relacyjna baza danych (w praktyce SQLite) i dostęp za pomocą SQLa – obecna we wszystkich liczących się przeglądarkach z wyjątkiem MSIE i FF, ale pod koniec 2010 roku wycofana ze standardu HTML5,
  • IndexedDB, czyli noSQLowa, obiektowa baza danych, dla odmiany ujęta w standardzie HTML5.

Niniejszy artykuł pozwoli sobie wyrobić zdanie na temat IndexedDB, technologii obecnej w przeglądarkach FF 4+, Chrome 11+ i MSIE 10+. Najpierw kilka akapitów ogólnego opisu, a na końcu przykład.

Twórcy IndexedDB postawili za cel stworzenie API do przechowywania (w szczególności offline) po stronie klienta dużych ilości danych dla celów wydajnego przeszukiwania z wykorzystaniem indeksów. Jedna aplikacja webowa (identyfikowana przez trójkę: protokół, domena, port – patrz zasada same origin policy) może tworzyć wiele baz danych różniących się nazwami. W obrębie bazy mamy magazyny (ang. object stores) – odpowiedniki tabel w relacyjnych bazach danych – gdzie trzymamy pary klucz/wartość. Kluczem może być łańcuch, data lub liczba, a wartością dowolny JSON (z dodatkowo dostępnymi typami date, regexp, undefined, a w FF nawet file i blob). W rzeczywistości klucz w parze klucz/wartość nie musi być osobnym ręcznie generowanym bytem (ang. out-of-line key), lecz może być generowany automatycznie (odpowiednik sekwencji w relacyjnych bazach danych), jak również może być częścią wartości (ang. in-line key), np. dla obiektu { pesel: '77061512654', imie: 'Jan', nazwisko: 'Kowalski' } możemy podczas tworzenia magazynu zdefiniować ścieżkę klucza (ang. key path) w postaci identyfikatora pesel, co spowoduje że kluczem dla wartości staje się jej pole pesel.

Czytaj więcej »

Tags: ,
Napisany w Uncategorized, WWW | Brak komentarzy »