HTML5 jak lokalna pamięć danych

Subskrybuj RSS A A A
25 stycznia 2011 13:50
Józef Muszyński, IDG News Service

TAGI: przegladarka HTML

Wśród zmian wprowadzonych w wersji roboczej HTML5, kilka jest bardzo radykalnych, jak np. opcje lokalnego przechowywania danych. HTML5 wprowadza m.in. nowy sposób obsługi danych użytkownika wykorzystywanych przez witryny internetowe - dotychczas były one składowane w małych plikach cookies. Technika Web Storage pozwala na zapis na dysku twardym plików o wielkości megabajtów.

Przeglądarka webowa w pierwotnym zamierzeniu miała być "czystym klientem" - wyświetlać informacje sprowadzane z odległego serwera i wykonywać wszystko to, co zechce on przekazać jej do wykonania. Wydawcy przeglądarek rozbudowywali je jednak o nowe funkcje, chociaż sam HTML nie rozwijał się prawie wcale w ostatnich latach.

Już dawno przeglądarki zaczęły oferować projektantom stron webowych możliwość umieszczania małych fragmentów danych poza witryną. Lokalne składowanie danych wykorzystywanych przez witryny internetowe możliwe było w małych plikach tekstowych (do 4 096 bajtów), zwanych cookies. Jednak ciasteczka podejrzewano o to, że służą do śledzenia poczynań użytkowników, co spowodowało wprowadzenie opcji ich usuwania. Ponadto cookies są nie tylko przechowywane w komputerze, ale na żądanie mogą być przesyłane zwrotnie do serwera, a przesyłanie zbyt wielu danych w łańcuchach nieprzekraczających 4096 znaków obciąża sieć procedurami akceptacyjnymi i spowalnia reakcje. Dla projektantów są to poważne ograniczenia możliwości ich wykorzystywania.

W standardzie HTML5 zespół projektujący postanowił uwzględnić wszystkie te problemy i stworzyć solidne podstawy dla oprogramowania opartego na przeglądarkach, dając programistom JavaScript możliwość przechowywania danych na lokalnym komputerze w praktycznych rozmiarach. Mogą być one dostępne non stop lub jedynie podczas jednej sesji. W najprostszym przypadku może to być pamięć podręczna dla wszystkich wywołań klienta do centralnego komputera, ale też i znacznie więcej. Web Storage tworzy bazę danych, która może zawierać nawet całe aplikacje internetowe, umożliwiając korzystanie z nich w trybie offline - nie ma wtedy potrzeby instalowania oprogramowania.

Pamięć sesyjna
Najprostszy poziom Web Storage to przechowywanie danych dla bieżących sesji - innymi słowy dopóty, dopóki karta lub okno przeglądarki pozostaje otwarte. Jednak nie musi to być sztywne ograniczenie, ponieważ specyfikacja pozostawia przeglądarce otwartą możliwość utrzymywania tych danych. Mechanizm nie jest zbyt rozbudowany. Każdy dokument uzyskuje obiekt sessionStorage z kilkoma głównymi funkcjami: setItem, getItem i clear. Każda pozycje to para klucz/dane, dokładnie jak w tablicy asocjacyjnej. Dane są klonem bieżących wartości. Nowy dokument dostaje nowy obiekt.

Pamięć lokalna
Większe korzyści wiążą się z obiektem localStorage, który wygląda bardzo podobnie jak obiekt sessionStorage, ale zachowuje się całkiem inaczej. Tam gdzie sessionStorage zapomina, localStorage - zapamiętuje. Dane powinny być nadal w obiegu, nawet po zamknięciu okna i wyłączeniu komputera. Ta ciągłość jest jeszcze trwalsza. Dwa okna wizytujące tę samą witrynę powinny współdzielić te same dane. Zmiana w kodzie pracującym w oknie powinna zmienić dane udostępnione w tym drugim. Według specyfikacji, zdarzenie storageChange w jednym oknie powinno być propagowane do wszystkich okien. Jednak łatwość, z jaką dwa okna mogą uzyskiwać dostęp do tych samych danych, może stwarzać problem race conditions, prowadzący do ich uszkadzania. Trwają więc dyskusje, czy obiekt pamięci lokalnej nie powinien być chroniony przed takimi zagrożeniami poprzez zaimplementowanie algorytmu wzajemnego wykluczania (mutex), który może ograniczać uszkadzanie danych. SessionStorage i localStorage są w pewnym zakresie zaimplementowane we wszystkich głównych przeglądarkach (Chrome, Firefox, Internet Explorer, Opera, Safari).

Pamięć indeksowana
Pary klucz/wartość w obiekcie localStorage są zazwyczaj wystarczająco funkcjonalne dla wielu podstawowych projektów, ale nie można ich porównywać z funkcjonalnością relacyjnych baz danych, które przechowują dane w indeksowanych tabelach. Tutaj istnieją już dwie opcje. Pierwsza - to standard Web SQL Database, który po opracowaniu wersji roboczej został zaimplementowany w niektórych przeglądarkach (Opera), zanim projekt zarzucono na rzecz bardziej abstrakcyjnej wersji. Ta nowa opcja to Indexed Database - lista kluczy i wartości, takich jak w obiekcie localStorage. Różnica jest taka, że indeks może przyspieszać wyszukiwanie niezbędnych obiektów. Indeksowana pamięć zawiera także możliwość wykonywania zmian w formie transakcji, eliminując problem race conditions, związany z obiektem localStorage. Wersja robocza standardu Indexed Database nadal jest opracowywana i np. problem blokowania przez dynamiczne transakcje zablokowanego już wcześniej obiektu bazy danych, nadal jest dopracowywany. IndexedDB nie jest jeszcze obsługiwana w żadnej przeglądarce.

Pamięć podręczna dla aplikacji
Udostępnienie stronom WWW możliwości lokalnego przechowywania danych może wpływać zmniejszenie ruchu sieciowego - poprzez buforowanie wywołań AJAX i innych ważnych informacji wyświetlanych użytkownikowi. API AppCaching określa, jak długo przeglądarka może utrzymywać elementy stron WWW przechowywane lokalnie. To pozwala nie tylko na zmniejszenie konieczności przeładowywania stron, ale także umożliwia stronom WWW działanie bez połączenia z internetem. Innymi słowy czyni z nich coś w rodzaju zainstalowanego oprogramowania. AppCaching jest obsługiwane w większości przeglądarek z wyjątkiem Internet Explorer (w tym również IE9 beta).

Wymieniono tylko niektóre mechanizmy Web Storage. Z nowymi możliwościami wiążą się jednak również nowe zagrożenia. Eksperci ds. bezpieczeństwa ostrzegają, że coraz bardziej zaciera się granica między treściami internetowymi a lokalnymi aplikacjami, co otwiera hakerom nowe możliwości ataków, a niezależność platformowa HTML5 sprawia, że narażeni na nie będą użytkownicy wszystkich systemów operacyjnych.

Oceń artykuł

średnio: 4.3 liczba ocen: 2

Komentarze (2)

~EZxmfJOR

28-09-2011 11:08

Surprisingly well-written and informative for a free online atrcile.

~wladczy

25-01-2011 17:00

Z tymi hakerami,to odwieczny problem.





Najnowsze

Ile kosztuje dowód osobisty

Rząd jako jeden z powodów anulowania przetargu na blankiety e-dowodu podaje brak środków. Sprawdziliśmy, ile kosztowałoby to podatników i jaka jest cena za dokumenty tożsamości na świecie.

Państwo do konsolidacji

Obywatele uważają administrację publiczną za jeden organizm. W rzeczywistości jest to kilka tysięcy oddzielnych struktur, obrosłych biurokratycznymi naroślami. Czy można zracjonalizować działanie państwa? Jak w tym może pomóc informatyka?

Zarządzanie po japońsku

W praktyce przemysłowej wypracowano szereg skutecznych metod zarządzania. Wiele powstało w Japonii. Dlaczego, mimo ich efektywności, nie zawsze są stosowane w biznesie?

e-Sąd z odsieczą sprawiedliwości

Polski wymiar sprawiedliwości postrzegany jest jako skostniały i opieszały. Tymczasem kolejne e-usługi udostępniane przez Ministerstwo Sprawiedliwości ułatwiają życie przedsiębiorcom i usprawniają pracę sądów.

e-Zdrowie w Polsce i na świecie

Projekty informatyzacji służby zdrowia realizowane są na świecie z różnym powodzeniem. Skąd Polska mogłaby czerpać wzorce? A może jesteśmy skazani na własne rozwiązania?

Raport Państwo 2.0, czyli nowa wizja informatyzacji państwa

Michał Boni, minister administracji i cyfryzacji, zaprezentował raport "Polska 2.0. Nowy start dla e-administracji". Przedstawia on informacje na temat stanu realizacji projektów będących w gestii nowo utworzonego ministerstwa oraz prezentuje kierunki dalszych działań związanych z informatyzacją i cyfryzacją administracji publicznej w naszym kraju.

Cyberprzestępcy podążają za użytkownikami

Już dwie na trzy polskie firmy odnotowały ataki lub awarie, które spowodowały spadek produkcji. Co trzecia firma utraciła dane. Liczba takich przypadków będzie rosła, bo hakerzy biorą na cel najbardziej masowe technologie. Szybko reagują też na zmiany w firmowej architekturze.

Rekomendacje




Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści - Prenumerata: Computerworld, Networld, PC World
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88