Articles

Progresywna aplikacja webowa

Istnieje wiele powszechnie używanych technologii do tworzenia progresywnych aplikacji webowych. Wszystkie PWA wymagają co najmniej service worker i manifestu.

ManifestEdit

Manifest aplikacji internetowej jest specyfikacją W3C definiującą manifest oparty na JSON (zwykle oznaczany jako manifest.json), aby zapewnić programistom scentralizowane miejsce do umieszczania metadanych związanych z aplikacją internetową, w tym:

  • Nazwa aplikacji internetowej
  • Linki do ikon aplikacji internetowej lub obiektów graficznych
  • Preferowany adres URL do uruchomienia lub otwarcia aplikacji internetowej
  • Dane konfiguracyjne aplikacji internetowej
  • Domyślna orientacja aplikacji internetowej
  • Możliwość ustawienia trybu wyświetlania, np.pełnoekranowy

Te metadane są kluczowe, aby aplikacja mogła zostać dodana do ekranu głównego lub w inny sposób wymieniona obok aplikacji natywnych.

Wsparcie dla iOSEdit

iOS Safari częściowo implementuje manifesty, podczas gdy większość metadanych PWA można zdefiniować za pomocą specyficznych dla Apple rozszerzeń meta tagów. Znaczniki te pozwalają programistom włączyć wyświetlanie pełnoekranowe, zdefiniować ikony i splash screeny oraz określić nazwę dla aplikacji.

WebAssemblyEdit

Główny artykuł: WebAssembly

WebAssembly pozwala na uruchamianie prekompilowanego kodu w przeglądarce internetowej, z prędkością zbliżoną do natywnej. Dzięki temu biblioteki napisane w językach takich jak C mogą być dodawane do aplikacji internetowych. Ze względu na koszt przekazywania danych z JavaScript do WebAssembly, najbliższe zastosowania będą głównie polegały na przeczesywaniu liczb (jak rozpoznawanie głosu i wizja komputerowa), a nie na tworzeniu całych aplikacji.

Przechowywanie danychEdit

Konteksty wykonawcze progresywnych aplikacji webowych są rozładowywane, kiedy tylko jest to możliwe, więc progresywne aplikacje webowe muszą przechowywać większość długoterminowego stanu wewnętrznego (dane użytkownika, dynamicznie ładowane zasoby aplikacji) w jeden z następujących sposobów

Przechowywanie danych w sieci WebEdit

Główny artykuł: Web storage

Web Storage jest standardem W3C API, który umożliwia przechowywanie kluczy-wartości w nowoczesnych przeglądarkach. API składa się z dwóch obiektów, sessionStorage (umożliwia przechowywanie tylko sesji, która jest wymazywana po zakończeniu sesji przeglądarki) i localStorage (umożliwia przechowywanie, które trwa przez sesje).

Pracownik serwisowyEdit

Pracownik serwisowy jest pracownikiem sieciowym, który implementuje programowalne proxy sieciowe, które może odpowiadać na żądania web/HTTP głównego dokumentu. Jest on w stanie sprawdzić dostępność zdalnego serwera i buforować zawartość, gdy serwer ten jest dostępny, a następnie serwować tę zawartość do dokumentu. Pracownicy serwisowi, tak jak wszyscy inni pracownicy webowi, działają niezależnie od głównego kontekstu dokumentu. Pracownicy serwisowi mogą obsługiwać powiadomienia push i synchronizować dane w tle, buforować lub pobierać żądania zasobów, przechwytywać żądania sieciowe i otrzymywać scentralizowane aktualizacje niezależnie od dokumentu, który ich zarejestrował, nawet jeśli ten dokument nie jest załadowany.

Pracownicy serwisowi przechodzą przez trzyetapowy cykl życia obejmujący rejestrację, instalację i aktywację. Rejestracja polega na podaniu przeglądarce lokalizacji pracownika serwisowego w celu przygotowania do instalacji. Instalacja ma miejsce, gdy w przeglądarce nie ma zainstalowanego pracownika serwisowego dla danej aplikacji webowej lub gdy nastąpiła aktualizacja pracownika serwisowego. Aktywacja następuje, gdy wszystkie strony PWA zostaną zamknięte, tak aby nie było konfliktu pomiędzy poprzednią wersją a zaktualizowaną. Cykl życia pomaga również zachować spójność podczas przełączania między wersjami service worker, ponieważ tylko jeden service worker może być aktywny dla domeny.

Indexed Database APIEdit

Główny artykuł: Indexed Database API

Indexed Database API to standard W3C API baz danych dostępny we wszystkich głównych przeglądarkach. API jest obsługiwane przez nowoczesne przeglądarki i umożliwia przechowywanie obiektów JSON oraz dowolnych struktur reprezentowalnych jako ciąg znaków. Indexed Database API może być używany z biblioteką wrapper zapewniającą dodatkowe konstrukcje wokół niego.

AppCache (przestarzałe)Edycja

Główny artykuł: Cache manifest w HTML5

Application Cache (lub AppCache lub HTML5 cache manifest) to wcześniejsza technologia, która pozwalała aplikacji buforować zawartość z wyprzedzeniem w celu późniejszego wykorzystania, gdy urządzenie jest w trybie offline. Działa odpowiednio dla aplikacji jednostronicowych, do których został zaprojektowany, ale zawodzi w problematyczny sposób w przypadku aplikacji wielostronicowych, takich jak wiki. Od maja 2019 r. technologia jest obsługiwana przez główne przeglądarki i używana od lat przez niektóre witryny, ale jest już zdeprecjonowana na rzecz pracowników usług i ostatecznie zostanie usunięta.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *