Ważne jest, aby wybrać odpowiednie mechanizmy pamięci masowej zarówno do pamięci lokalnej urządzenia, jak i serwera w chmurze. Dobry mechanizm pamięci masowej gwarantuje niezawodne zapisywanie informacji, zmniejsza przepustowość i poprawia responsywność. Właściwa strategia buforowania pamięci to podstawowy element tworzenia witryn mobilnych w trybie offline.
W tym artykule znajdziesz krótkie podstawy oceny interfejsów API i usług do zarządzania miejscem na dane. Później udostępniamy tabelę porównawczą i kilka ogólnych wskazówek. W najbliższej przyszłości planujemy dodać zasoby, które pomogą dogłębnie zrozumieć wybrane tematy dotyczące miejsca na dane.
Taksonomia pamięci masowej
Zacznijmy od zrozumienia niektórych wymiarów, według których możemy analizować przechowywanie danych w przypadku aplikacji internetowych. Wykorzystamy później tę platformę, aby wyliczyć i ocenić wiele opcji miejsca na dane dostępnych dla programistów stron internetowych.
Model danych
Model przechowywania jednostek danych określa wewnętrzną organizację danych, co wpływa na łatwość użycia, koszty i wydajność pamięci masowej oraz żądania pobrania.
Uporządkowane: dane przechowywane w tabelach z zdefiniowanymi wstępnie polami, które są typowe dla systemów zarządzania bazami danych SQL, dobrze nadają się do elastycznych i dynamicznych zapytań, w których pełny zakres typów zapytań może nie być znany wcześniej. Doskonałym przykładem uporządkowanych danych magazynu danych w przeglądarce jest IndexedDB.
Klucz/wartość: magazyny danych klucz-wartość i powiązane bazy danych NoSQL umożliwiają przechowywanie i pobieranie nieuporządkowanych danych indeksowanych za pomocą unikalnego klucza. Magazyny danych klucz/wartość są jak tabele haszujące, ponieważ zapewniają stały dostęp do zindeksowanych, nieprzezroczystych danych. Najważniejsze przykłady magazynów danych w postaci par klucz-wartość to Cache API w przeglądarce i Apache Cassandra na serwerze.
Strumienie bajtów: ten prosty model przechowuje dane o zmiennej długości, nieprzezroczysty łańcuch bajtów, pozostawiając w warstwie aplikacji dowolną formę organizacji wewnętrznej. Ten model sprawdza się szczególnie w przypadku systemów plików i innych hierarchicznie uporządkowanych blobów danych. Przykładami magazynów danych strumieni bajtów są systemy plików i usługi przechowywania danych w chmurze.
Trwałość
Metody przechowywania danych aplikacji internetowych można analizować pod kątem zakresu, w którym dane są trwałe.
Trwałość sesji: dane w tej kategorii są przechowywane tylko tak długo, jak jest aktywna jedna sesja internetowa lub jedna karta przeglądarki. Przykładem mechanizmu pamięci masowej o trwałości sesji jest interfejs Session Storage API.
Trwałość urządzenia: dane z tej kategorii są przechowywane w różnych sesjach i kartach/oknach przeglądarki na danym urządzeniu. Przykładem mechanizmu przechowywania danych, który zapewnia trwałość urządzenia, jest interfejs Cache API.
Globalna trwałość: dane z tej kategorii są przechowywane w różnych sesjach i na różnych urządzeniach. W związku z tym jest to najpewniejsza forma trwałości danych. Przykładem mechanizmu pamięci masowej o globalnej trwałości jest Google Cloud Storage.
Obsługa przeglądarek
Deweloperzy powinni wybrać interfejs API najlepiej pasujący do ich problematycznej domeny. Muszą jednak także wziąć pod uwagę fakt, że standardowe i dobrze znane interfejsy są preferowane od interfejsów niestandardowych lub zastrzeżonych, ponieważ zwykle są one długotrwałe i szersze obsługiwane. Mogą też korzystać z większej bazy wiedzy i bogatszego ekosystemu programistów.
Transakcje
Często ważne jest, aby zbiór powiązanych operacji w pamięci masowej zakończył się lub kończył niepowodzeniem atomowo. Systemy zarządzania bazami danych do tej pory obsługiwały tę funkcję za pomocą modelu transakcji, w którym powiązane aktualizacje mogą być grupowane w dowolne jednostki. Chociaż nie zawsze jest to niezbędne, w niektórych problematycznych domenach jest to wygodna, a czasami niezbędna funkcja.
Synchronizacja/asynchroniczna
Niektóre interfejsy API do przechowywania danych są synchroniczne w tym sensie, że żądania dotyczące miejsca na dane lub pobierania blokują obecnie aktywny wątek do momentu ukończenia żądania. Jest to szczególnie uciążliwe w przeglądarkach, w których żądanie miejsca na dane udostępnia interfejsowi główne wątki. Ze względu na wydajność i wydajność warto korzystać z asynchronicznych interfejsów API do przechowywania danych.
Debugowanie pamięci masowej w Narzędziach deweloperskich w Chrome
Zapoznaj się z dokumentacją poniżej, aby dowiedzieć się więcej o używaniu Narzędzi deweloperskich w Chrome do sprawdzania i debugowania wybranego interfejsu API do przechowywania danych w sieci. Interfejsy API, których tu nie wymieniliśmy, nie są obsługiwane w Narzędziach deweloperskich lub nie mają zastosowania.
Jeśli używasz wielu interfejsów API pamięci masowej, zapoznaj się z funkcją Wyczyść pamięć masową dostępną w narzędziach deweloperskich. Ta funkcja pozwala wyczyścić wiele sklepów jednym kliknięciem. Więcej informacji znajdziesz w artykule Czyszczenie mechanizmów Service Worker, pamięci masowej, baz danych i pamięci podręcznej.
Co dalej...
Omówiliśmy już kilka istotnych sposobów postrzegania mechanizmów przechowywania danych i porównaliśmy najpopularniejsze interfejsy API i usługi dostępne obecnie, a wkrótce dodamy więcej materiałów, aby bardziej szczegółowo przeanalizować co najmniej jeden z Twoich zainteresowań: