Omówienie miejsca na dane w internecie

Ważne jest wybranie odpowiednich mechanizmów przechowywania danych, zarówno w przypadku lokalnego miejsca na dane urządzenia, jak i serwera w chmurze. Dobry mechanizm przechowywania danych zapewnia niezawodne zapisywanie informacji, zmniejsza przepustowość i poprawia szybkość działania. Odpowiednia strategia buforowania danych jest podstawowym elementem umożliwiającym korzystanie z internetu na urządzeniach mobilnych w trybie offline.

W tym artykule znajdziesz krótkie omówienie interfejsów API i usług do przechowywania danych, a następnie znajdziesz tabelę porównawczą i kilka ogólnych wskazówek. W najbliższej przyszłości planujemy dodać materiały, które pomogą Ci lepiej zrozumieć wybrane tematy związane z pamięcią masową.

Taksonomia miejsca na dane

Zacznijmy od omówienia wymiarów, za pomocą których można analizować dane dotyczące pamięci w przypadku aplikacji internetowych. Później użyjemy tego frameworku do wyliczenia i oceny wielu opcji przechowywania danych dostępnych dla programistów stron internetowych.

Model danych

Model przechowywania jednostek danych określa, jak dane są zorganizowane wewnętrznie, co wpływa na łatwość użycia, koszty i wydajność operacji przechowywania i pobierania danych.

  • Ustrukturyzowane: dane przechowywane w tabelach z wstępnie zdefiniowanymi polami, jak to ma miejsce w przypadku systemów zarządzania bazami danych opartych na SQL, dobrze nadają się do elastycznych i dynamicznych zapytań, w których pełny zakres typów zapytań może nie być znany a priori. Przykładem uporządkowanego magazynu danych w przeglądarce jest IndexedDB.

  • Klucz-wartość: magazyny danych klucz-wartość i powiązane z nimi bazy danych NoSQL umożliwiają przechowywanie i pobieranie danych nieuporządkowanych zindeksowanych za pomocą unikalnego klucza. Zbiory danych klucz-wartość są podobne do tabel haszujących, ponieważ umożliwiają dostęp do zaszyfrowanych danych w stałym czasie. Przykładami pamięci danych klucz-wartość są Cache API w przeglądarce i Apache Cassandra na serwerze.

  • Strumienie bajtów: ten prosty model przechowuje dane jako nieprzezroczysty ciąg bajtów o zmiennej długości, pozostawiając dowolną formę organizacji wewnętrznej warstwie aplikacji. Ten model sprawdza się szczególnie dobrze w przypadku systemów plików i innych hierarchicznych bloków danych. Przykłady baz danych strumieni bajtów to m.in. systemy plików i usługi przechowywania danych w chmurze.

Trwałość

Metody przechowywania danych w aplikacjach internetowych można analizować na podstawie zakresu, w którym dane są trwałe.

  • Trwałość sesji: dane z tej kategorii są przechowywane tylko przez czas trwania pojedynczej sesji w internecie lub karty przeglądarki. Przykładem mechanizmu przechowywania z trwałością sesji jest interfejs Session Storage API.

  • Stała dostępność na urządzeniu: dane z tej kategorii są zachowywane w przypadku sesji i kart/okienek przeglądarki na danym urządzeniu. Przykładem mechanizmu przechowywania z trwałością na urządzeniu jest interfejs Cache API.

  • Globalna trwałość: dane z tej kategorii są przechowywane w całych sesjach i na wszystkich urządzeniach. Jest to najtrwalsza forma trwałości danych. Przykładem mechanizmu przechowywania z globalną trwałością jest Google Cloud Storage.

Obsługa przeglądarek

Deweloperzy powinni wybrać interfejs API najlepiej dopasowany do ich problemu, ale powinni też wziąć pod uwagę fakt, że standardowe i dobrze znane interfejsy API są lepsze od niestandardowych lub zastrzeżonych interfejsów, ponieważ są trwalsze i szerzej wspierane. Mogą też korzystać z szerszej bazy wiedzy i bogatszego ekosystemu deweloperów.

Transakcje

Często ważne jest, aby zbiór powiązanych operacji na danych zakończył się powodzeniem lub nie powiódł się w całości. Systemy zarządzania bazami danych tradycyjnie obsługiwały tę funkcję za pomocą modelu transakcji, w którym powiązane aktualizacje mogą być grupowane w dowolne jednostki. Ta funkcja nie jest zawsze konieczna, ale jest wygodna, a czasem niezbędna w niektórych obszarach problemowych.

Synchronizacja/Asynchronicznie

Niektóre interfejsy API do przechowywania danych są synchroniczne w tym sensie, że żądania przechowywania lub pobierania blokują aktywny wątek, dopóki żądanie nie zostanie zrealizowane. Jest to szczególnie uciążliwe w przypadku przeglądarek, w których żądanie dotyczące miejsca na dane współdzieli wątek główny z interfejsem użytkownika. Ze względu na wydajność i skuteczność zalecamy używanie asynchronicznych interfejsów API pamięci masowej.

Debugowanie pamięci w Narzędziach deweloperskich w Chrome

Aby dowiedzieć się więcej o używaniu Narzędzi deweloperskich w Chrome do sprawdzania i debugowania wybranego interfejsu API pamięci internetowej, zapoznaj się z tymi dokumentami. Interfejsy API, których nie ma na tej liście, nie są obsługiwane w Narzędziach deweloperskich lub nie mają zastosowania.

Jeśli używasz wielu interfejsów API pamięci, skorzystaj z funkcji Wyczyść pamięć w DevTools. Ta funkcja umożliwia wyczyszczenie wielu sklepów za pomocą jednego kliknięcia. Więcej informacji znajdziesz w artykule Czyszczenie usług, pamięci, baz danych i pamięci podręcznej.

Co dalej?

Po omówieniu różnych sposobów myślenia o mechanizmach przechowywania i porównaniu najpopularniejszych interfejsów API oraz usług dostępnych obecnie dodamy więcej treści, aby dokładniej omówić interesujące Cię tematy: