W rozdziale:
- Wprowadzenie do aplikacji offline
- Manifest
- Przepływ zdarzeń
- Usuwanie błędów
- Przykład
Przepływ zdarzeń
Od początku rozdziału piszę o aplikacjach sieciowych offline, manifestach oraz buforze offline aplikacji, ale nie podaję żadnych konkretów. Pliki się pobierają, przeglądarki podejmują decyzje i wszystko po prostu działa. Ale ty wiesz swoje, prawda? To znaczy, przecież mówimy o programowaniu sieciowym. A tu nic nigdy tak po prostu sobie nie działa.
Dla tego najpierw omówię przepływ zdarzeń. A dokładniej mówiąc, przepływ zdarzeń DOM. Gdy otworzysz stronę mającą dołączony plik manifestu, przeglądarka uruchamia serię zdarzeń na obiekcie window.applicationCache. Wiem że to jest skomplikowane, ale uwierz mi, że to jest i tak najprostsza wersja, jaką udało mi się wymyślić bez pomijania ważnych informacji.
- Gdy przeglądarka odkryje atrybut
manifestw elemencie<html>, uruchamia zdarzeniechecking. (Wszystkie opisywane tu zdarzenia dotyczą obiektuwindow.applicationCache.) Zdarzeniecheckingjest uruchamiane zawsze, niezależnie od tego czy ta konkretna strona albo jakakolwiek inna wskazująca ten manifest była już odwiedzana. - Jeśli przeglądarka nigdy wcześniej nie pobrała tego pliku manifestu:
- Uruchomi zdarzenie
downloading, a później rozpocznie pobieranie zasobów wymienionych na liście manifestu. - Podczas pobierania zasobów przeglądarka od czasu do czasu uruchomi zdarzenie
progresszawierające informacje o liczbie pobranych plików oraz ile zostało jeszcze do pobrania. - Po pobraniu wszystkich zasobów z listy manifestu przeglądarka uruchamia ostatnie zdarzenie o nazwie
cached. Jest to sygnał, że cała aplikacja została pobrana do bufora i można jej używać offline. To wszystko.
- Uruchomi zdarzenie
- Jeśli jednak ta lub inna strona wskazująca ten sam manifest była już wcześniej odwiedzona, to przeglądarka zna już ten plik manifestu. To znaczy, że niektóre zasoby mogą już znajdować się w buforze. W istocie zbuforowana może być już cała aplikacja. Powstaje więc pytanie co zmieniło się w manifecie od ostatniego pobrania go przez przeglądarkę?
- Jeśli nic, następuje uruchomienie zdarzenia
noupdate. To wszystko. - Jeśli coś się zmieniło, przeglądarka uruchamia zdarzenie
downloadingi rozpoczyna pobieranie wszystkich wymienionych na liście manifestu zasobów. - Podczas pobierania zasobów przeglądarka od czasu do czasu uruchomi zdarzenie
progresszawierające informacje o liczbie pobranych plików oraz ile zostało jeszcze do pobrania. - Po ponownym pobraniu wszystkich zasobów z listy manifestu przeglądarka uruchamia ostatnie zdarzenie o nazwie
updateready. Jest to sygnał, że nowa wersja aplikacji została pobrana do bufora i można jej używać offline. Nowa wersja nie jest jeszcze używana. Aby zastąpić starą wersję nową bez zmuszania użytkownika do odświeżenia strony, można ręcznie wywołać funkcjęwindow.applicationCache.swapCache().
- Jeśli nic, następuje uruchomienie zdarzenia
Jeśli w którymkolwiek momencie procesu coś się nie uda, przeglądarka zgłosi zdarzenie error i wstrzyma wszystko. Oto krótka lista potencjalnych problemów:
- Manifest zwrócił błąd HTTP 404 (nie znaleziono strony) lub 410 (usunięty na zawsze).
- Manifest został znaleziony i nie zmienił się, ale wskazująca go strona HTML nie została poprawnie pobrana.
- Manifest zmienił się w trakcie trwania aktualizacji.
- Manifest został znaleziony i nie zmienił się, ale przeglądarce nie udało się pobrać jednego z wymienionych w nim zasobów.
- Wprowadzenie do aplikacji offline
- Manifest
- Przepływ zdarzeń
- Usuwanie błędów
- Przykład




Wysyłam...
Dodaj komentarz