Odkryj odporne, wznawialne pobierania w aplikacjach webowych. Ten przewodnik omawia Background Fetch API, Service Workers i praktyczn膮 implementacj臋 dla p艂ynnego transferu du偶ych plik贸w, nawet przy przerwach w sieci.
Opanowanie Background Fetch we Frontendzie: Budowanie Odpornych i Wznawialnych Pobra艅
W naszym coraz bardziej po艂膮czonym 艣wiecie internet nie jest ju偶 tylko miejscem na statyczne dokumenty. To platforma dla bogatych, interaktywnych aplikacji, kt贸re dostarczaj膮 wszystko, od tre艣ci wideo w wysokiej rozdzielczo艣ci, przez z艂o偶one oprogramowanie biznesowe, po wci膮gaj膮ce gry. Ta ewolucja niesie ze sob膮 powa偶ne wyzwanie, z kt贸rym musz膮 zmierzy膰 si臋 deweloperzy na ca艂ym 艣wiecie: niezawodny transfer du偶ych plik贸w przez sieci, kt贸re cz臋sto s膮 dalekie od niezawodno艣ci. Niezale偶nie od tego, czy jest to u偶ytkownik w poci膮gu podmiejskim w Seulu, student w wiejskiej cz臋艣ci Ameryki Po艂udniowej, czy profesjonalista korzystaj膮cy z niestabilnego hotelowego Wi-Fi w Dubaju, zerwane po艂膮czenie mo偶e oznacza膰 nieudane pobieranie, sfrustrowanego u偶ytkownika i zepsute do艣wiadczenie. To w艂a艣nie tutaj Background Fetch API pojawia si臋 jako rewolucyjne rozwi膮zanie.
Tradycyjne metody, takie jak `fetch()` czy `XMLHttpRequest`, s膮 pot臋偶ne, ale nierozerwalnie zwi膮zane z cyklem 偶ycia strony internetowej. Je艣li u偶ytkownik zamknie kart臋 lub przejdzie na inn膮 stron臋, pobieranie zostaje przerwane. Nie ma wbudowanego mechanizmu, kt贸ry pozwoli艂by mu przetrwa膰 sesj臋 strony. Background Fetch API fundamentalnie zmienia ten paradygmat. Pozwala ono aplikacji internetowej przekaza膰 zadania pobierania (i wysy艂ania) du偶ych plik贸w samej przegl膮darce, kt贸ra nast臋pnie zarz膮dza transferem w tle, niezale偶nie od jakiejkolwiek pojedynczej karty przegl膮darki. Oznacza to, 偶e pobieranie mo偶e by膰 kontynuowane nawet po zamkni臋ciu strony przez u偶ytkownika, a co wa偶niejsze, mo偶e by膰 automatycznie wstrzymywane i wznawiane w przypadku zmiany 艂膮czno艣ci sieciowej. To klucz do budowania prawdziwie odpornych, zbli偶onych do natywnych do艣wiadcze艅 pobierania w internecie.
Czym jest Background Fetch API? Perspektywa Globalna
W swej istocie Background Fetch API to nowoczesny standard internetowy, zaprojektowany do delegowania du偶ych 偶膮da艅 sieciowych do silnika przegl膮darki. Umo偶liwia deweloperom inicjowanie pobierania lub wysy艂ania, kt贸re trwa d艂u偶ej ni偶 偶ywotno艣膰 widocznego okna aplikacji. To nie jest tylko drobna wygoda; to fundamentalna technologia dla bardziej solidnego i wydajnego internetu.
Rozwa偶my jego wp艂yw z globalnego punktu widzenia. W wielu cz臋艣ciach 艣wiata szybki i stabilny internet to luksus, a nie standard. Dane mobilne mog膮 by膰 drogie i limitowane. Aby aplikacja by艂a prawdziwie globalna, musi uwzgl臋dnia膰 te zr贸偶nicowane warunki sieciowe. Background Fetch to technologia wyr贸wnuj膮ca szanse. Pozwala u偶ytkownikowi w regionie z przerywan膮 艂膮czno艣ci膮 rozpocz膮膰 pobieranie edukacyjnego wideo lub krytycznej aktualizacji oprogramowania, ufaj膮c, 偶e zostanie ono uko艅czone w tle, gdy tylko po艂膮czenie na to pozwoli, i nie marnuj膮c cennych danych na ponowne pobieranie nieudanych plik贸w.
Kluczowe Korzy艣ci z Background Fetch
- Odporno艣膰 i Wznawianie: To g艂贸wna cecha. Wbudowany mened偶er pobierania przegl膮darki z gracj膮 radzi sobie z przerwami w sieci. Je艣li po艂膮czenie zostanie utracone, pobieranie jest wstrzymywane. Po przywr贸ceniu 艂膮czno艣ci, automatycznie wznawia si臋 od miejsca, w kt贸rym zosta艂o przerwane. Dzieje si臋 to bez skomplikowanej logiki JavaScript do obs艂ugi nag艂贸wk贸w HTTP
Range. - Trwa艂o艣膰 Offline: Poniewa偶 pobieranie jest zarz膮dzane przez proces przegl膮darki i obs艂ugiwane przez Service Workera, nie jest ono powi膮zane z otwart膮 kart膮. U偶ytkownik mo偶e rozpocz膮膰 pobieranie, zamkn膮膰 laptopa, wr贸ci膰 do domu, otworzy膰 go ponownie i stwierdzi膰, 偶e pobieranie zosta艂o uko艅czone lub posun臋艂o si臋 naprz贸d.
- Wydajno艣膰 Zasob贸w: Przegl膮darka jest w najlepszej pozycji do optymalizacji zu偶ycia zasob贸w. Mo偶e planowa膰 transfery tak, aby korzysta膰 z po艂膮cze艅 Wi-Fi, oszcz臋dzaj膮c dane mobilne, i zarz膮dza膰 procesami w celu optymalizacji 偶ywotno艣ci baterii, co jest kluczowe dla u偶ytkownik贸w mobilnych na ca艂ym 艣wiecie.
- Zintegrowane Do艣wiadczenie U偶ytkownika: Przegl膮darka mo偶e zapewni膰 natywny, systemowy interfejs u偶ytkownika dla trwaj膮cych pobra艅. U偶ytkownicy widz膮 i zarz膮dzaj膮 tymi pobraniami internetowymi w tym samym miejscu, co pobraniami z aplikacji natywnych, tworz膮c p艂ynne i znajome do艣wiadczenie. Obejmuje to powiadomienia o post臋pie, uko艅czeniu i niepowodzeniu.
Podstawowe Komponenty: Service Workers i BackgroundFetchManager
Aby zrozumie膰 Background Fetch, musisz najpierw zapozna膰 si臋 z jego dwoma g艂贸wnymi komponentami. Dzia艂aj膮 one w tandemie: jeden inicjuje 偶膮danie ze strony internetowej, a drugi zarz膮dza wynikiem w tle.
Niedoceniony Bohater: Service Worker
Service Worker to rodzaj Web Workera, w zasadzie skrypt JavaScript, kt贸ry przegl膮darka uruchamia w tle, ca艂kowicie oddzielnie od jakiejkolwiek strony internetowej. Dzia艂a jako programowalne proxy sieciowe, przechwytuj膮c i obs艂uguj膮c 偶膮dania sieciowe, zarz膮dzaj膮c pami臋ci膮 podr臋czn膮 i umo偶liwiaj膮c powiadomienia push. Poniewa偶 dzia艂a niezale偶nie, mo偶e wykonywa膰 zadania nawet wtedy, gdy Twoja strona nie jest otwarta w karcie przegl膮darki. W przypadku Background Fetch, Service Worker jest trwa艂ym 艣rodowiskiem, kt贸re nas艂uchuje na ostateczny sukces lub pora偶k臋 pobierania, przetwarza wynikowe pliki i aktualizuje interfejs u偶ytkownika lub zapisuje zasoby w pami臋ci podr臋cznej do u偶ytku offline.
Dyrygent: BackgroundFetchManager
`BackgroundFetchManager` to interfejs, dost臋pny z g艂贸wnego skryptu JavaScript Twojej strony, kt贸rego u偶ywasz do inicjowania i konfigurowania pobierania w tle. Dost臋p do niego uzyskujesz poprzez obiekt rejestracji Service Workera: `navigator.serviceWorker.ready.then(swReg => swReg.backgroundFetch)`. Jego g艂贸wn膮 metod膮 jest `fetch()`, kt贸ra przyjmuje identyfikator, list臋 plik贸w do pobrania oraz zestaw opcji. Ta metoda jest jak pistolet startowy; gdy j膮 wywo艂asz, przegl膮darka przejmuje kontrol臋, a Tw贸j Service Worker czeka na linii mety.
Praktyczny Przewodnik Implementacji Krok po Kroku
Przejd藕my przez proces implementacji wznawialnego pobierania dla du偶ego pliku wideo. Ten przyk艂ad ma uniwersalne zastosowanie, czy to dla platformy medialnej w Stanach Zjednoczonych, strony e-learningowej w Indiach, czy portalu szkoleniowego dla korporacji w Niemczech.
Krok 1: Sprawdzanie Wsparcia Przegl膮darki
Przed zrobieniem czegokolwiek innego, musisz upewni膰 si臋, 偶e przegl膮darka u偶ytkownika wspiera Background Fetch API. Ta praktyka, znana jako progressive enhancement (stopniowe ulepszanie), zapewnia funkcjonalne do艣wiadczenie dla wszystkich, nawet je艣li nie otrzymuj膮 oni najbardziej zaawansowanych funkcji.
W g艂贸wnym skrypcie aplikacji sprawdzi艂by艣 obecno艣膰 `BackgroundFetchManager`:
if ('BackgroundFetchManager' in self) { // API jest wspierane, mo偶emy pokaza膰 ulepszony przycisk pobierania } else { // API nie jest wspierane, zapewnij alternatywne rozwi膮zanie (np. standardowy link) }
Krok 2: Rejestracja Service Workera
Background Fetch jest fundamentalnie zale偶ne od Service Workera. Je艣li jeszcze go nie masz dla swojej Progresywnej Aplikacji Webowej (PWA), b臋dziesz musia艂 go stworzy膰 i zarejestrowa膰. Utw贸rz plik o nazwie `service-worker.js` w g艂贸wnym katalogu projektu. Nast臋pnie zarejestruj go z g艂贸wnego pliku JavaScript:
async function registerServiceWorker() { if ('serviceWorker' in navigator) { try { const registration = await navigator.serviceWorker.register('/service-worker.js'); console.log('Service Worker zarejestrowany pomy艣lnie:', registration); } catch (error) { console.error('Rejestracja Service Workera nie powiod艂a si臋:', error); } } } registerServiceWorker();
Krok 3: Inicjowanie Pobierania w Tle z Poziomu Frontendu
Teraz stw贸rzmy funkcj臋, kt贸ra rozpocznie pobieranie, gdy u偶ytkownik kliknie przycisk. Ta funkcja pobierze aktywn膮 rejestracj臋 Service Workera, a nast臋pnie wywo艂a `backgroundFetch.fetch()`.
const downloadVideoButton = document.getElementById('download-video-btn'); downloadVideoButton.addEventListener('click', async () => { try { // Pobierz rejestracj臋 Service Workera const swReg = await navigator.serviceWorker.ready; // Zdefiniuj szczeg贸艂y pobierania const videoUrl = '/assets/large-course-video.mp4'; const videoFileSize = 250 * 1024 * 1024; // 250 MB // Rozpocznij pobieranie w tle const bgFetch = await swReg.backgroundFetch.fetch('course-video-download-01', [videoUrl], { title: 'Modu艂 1: Wprowadzenie do Tworzenia Stron Internetowych', icons: [{ sizes: '192x192', src: '/images/icons/icon-192.png', type: 'image/png', }], downloadTotal: videoFileSize, } ); console.log('Rozpocz臋to pobieranie w tle:', bgFetch); } catch (error) { console.error('Nie mo偶na by艂o rozpocz膮膰 pobierania w tle:', error); } });
Przeanalizujmy parametry `swReg.backgroundFetch.fetch()`:
- ID (`'course-video-download-01'`): Unikalny identyfikator tekstowy dla tego konkretnego zadania pobierania. U偶yjesz tego ID do odwo艂ywania si臋 do zadania w przysz艂o艣ci.
- 呕膮dania (`[videoUrl]`): Tablica adres贸w URL do pobrania. Mo偶esz pobiera膰 wiele plik贸w w jednym, zgrupowanym zadaniu.
- Opcje (`{...}`): Obiekt do konfiguracji pobierania. `title` i `icons` s膮 u偶ywane przez przegl膮dark臋 do tworzenia natywnego powiadomienia w interfejsie. `downloadTotal` to oczekiwany ca艂kowity rozmiar wszystkich plik贸w w bajtach; podanie tej warto艣ci jest kluczowe, aby przegl膮darka mog艂a wy艣wietli膰 dok艂adny pasek post臋pu.
Krok 4: Obs艂uga Zdarze艅 w Service Workerze
Gdy pobieranie zostanie przekazane do przegl膮darki, zadanie Twojego kodu frontendowego jest na razie zako艅czone. Reszta logiki znajduje si臋 w `service-worker.js`, kt贸ry zostanie wybudzony przez przegl膮dark臋, gdy zadanie zostanie uko艅czone lub zako艅czy si臋 niepowodzeniem.
Musisz nas艂uchiwa膰 na dwa kluczowe zdarzenia: `backgroundfetchsuccess` i `backgroundfetchfail`.
// W pliku service-worker.js self.addEventListener('backgroundfetchsuccess', (event) => { const bgFetch = event.registration; event.waitUntil(async function () { console.log(`Pobieranie w tle '${bgFetch.id}' zako艅czy艂o si臋 pomy艣lnie.`); // Otw贸rz pami臋膰 podr臋czn膮, w kt贸rej b臋dziemy przechowywa膰 pobrane pliki const cache = await caches.open('downloaded-assets-v1'); // Pobierz wszystkie rekordy pobranych plik贸w const records = await bgFetch.matchAll(); // Dla ka偶dego rekordu, zapisz odpowied藕 w pami臋ci podr臋cznej const promises = records.map(async (record) => { const response = record.response.clone(); await cache.put(record.request, response); }); await Promise.all(promises); // Opcjonalnie: Zaktualizuj tytu艂 w powiadomieniu o pobieraniu await event.updateUI({ title: 'Pobieranie zako艅czone i gotowe!' }); }()); }); self.addEventListener('backgroundfetchfail', (event) => { const bgFetch = event.registration; console.error(`Pobieranie w tle '${bgFetch.id}' nie powiod艂o si臋.`); // Opcjonalnie: Zaktualizuj interfejs, aby odzwierciedli膰 niepowodzenie event.updateUI({ title: 'Pobieranie nie powiod艂o si臋. Spr贸buj ponownie.' }); });
W procedurze obs艂ugi sukcesu otwieramy Pami臋膰 Podr臋czn膮 (Cache Storage), pobieramy wszystkie pobrane pliki za pomoc膮 `bgFetch.matchAll()`, a nast臋pnie umieszczamy ka偶dy z nich w pami臋ci podr臋cznej. Dzi臋ki temu wideo staje si臋 dost臋pne do odtwarzania offline przez Twoj膮 aplikacj臋 internetow膮.
Krok 5: Monitorowanie Post臋pu i Interakcja z U偶ytkownikiem
艢wietne do艣wiadczenie u偶ytkownika wi膮偶e si臋 z dostarczaniem informacji zwrotnej. Gdy u偶ytkownik kliknie powiadomienie o pobieraniu dostarczone przez przegl膮dark臋, powinni艣my przenie艣膰 go na odpowiedni膮 stron臋 w naszej aplikacji. Obs艂ugujemy to za pomoc膮 zdarzenia `backgroundfetchclick` w Service Workerze.
// W pliku service-worker.js self.addEventListener('backgroundfetchclick', (event) => { const bgFetch = event.registration; if (bgFetch.id === 'course-video-download-01') { event.waitUntil( clients.openWindow('/downloads') ); } });
Ten kod instruuje przegl膮dark臋, aby otworzy艂a stron臋 `/downloads` Twojej witryny, gdy u偶ytkownik kliknie powiadomienie dotycz膮ce tego konkretnego zadania pobierania. Na tej stronie m贸g艂by艣 wtedy wy艣wietli膰 post臋p pobierania lub list臋 uko艅czonych pobra艅.
Magia Wznawiania: Jak to Dzia艂a w Praktyce?
Najpot臋偶niejszym i by膰 mo偶e najbardziej niezrozumianym aspektem Background Fetch jest jego zdolno艣膰 do automatycznego wznawiania. Jak to dzia艂a, skoro nie musisz pisa膰 偶adnego specjalnego kodu?
Odpowied藕 brzmi: delegowa艂e艣 odpowiedzialno艣膰 na wysoce zoptymalizowany proces na poziomie systemu: w艂asny mened偶er pobierania przegl膮darki. Kiedy inicjujesz pobieranie w tle, nie zarz膮dzasz bezpo艣rednio bajtami przesy艂anymi przez sie膰. Robi to przegl膮darka.
Oto sekwencja zdarze艅 podczas przerwy w sieci:
- U偶ytkownik pobiera plik, a jego urz膮dzenie traci po艂膮czenie z sieci膮 (np. wje偶d偶a do tunelu).
- Mened偶er pobierania przegl膮darki wykrywa awari臋 sieci i p艂ynnie wstrzymuje transfer. Zapami臋tuje, ile bajt贸w zosta艂o pomy艣lnie odebranych.
- Urz膮dzenie u偶ytkownika p贸藕niej odzyskuje po艂膮czenie z sieci膮.
- Przegl膮darka automatycznie pr贸buje wznowi膰 pobieranie. Wysy艂a nowe 偶膮danie HTTP do serwera po ten sam plik, ale tym razem do艂膮cza nag艂贸wek `Range`, skutecznie informuj膮c serwer, "Mam ju偶 pierwsze 'X' bajt贸w, prosz臋, wy艣lij mi reszt臋, zaczynaj膮c od bajtu 'X+1'."
- Poprawnie skonfigurowany serwer odpowie statusem `206 Partial Content` i rozpocznie strumieniowanie pozosta艂ej cz臋艣ci pliku.
- Przegl膮darka do艂膮cza te nowe dane do cz臋艣ciowo pobranego pliku.
Ca艂y ten proces jest transparentny dla Twojego kodu JavaScript. Tw贸j Service Worker jest powiadamiany dopiero na samym ko艅cu, gdy plik zostanie w pe艂ni pobrany i pomy艣lnie po艂膮czony, lub je艣li proces zako艅czy si臋 nieodwracaln膮 pora偶k膮 (np. plik nie jest ju偶 dost臋pny na serwerze). Ta abstrakcja jest niezwykle pot臋偶na, uwalniaj膮c deweloper贸w od budowania skomplikowanej i kruchej logiki wznawiania pobierania.
Zaawansowane Koncepcje i Dobre Praktyki dla Globalnej Publiczno艣ci
Dostarczanie Dok艂adnej Warto艣ci `downloadTotal`
Opcja `downloadTotal` to co艣 wi臋cej ni偶 mi艂y dodatek. Bez niej przegl膮darka mo偶e wy艣wietli膰 tylko nieokre艣lony wska藕nik post臋pu (np. kr臋c膮c膮 si臋 ikon臋). Z ni膮 mo偶e wy艣wietli膰 precyzyjny pasek post臋pu i obliczy膰 szacowany czas do ko艅ca. To znacznie poprawia do艣wiadczenie u偶ytkownika. Aby uzyska膰 t臋 warto艣膰, by膰 mo偶e b臋dziesz musia艂 wcze艣niej wys艂a膰 偶膮danie `HEAD` na adres URL pliku, aby sprawdzi膰 nag艂贸wek `Content-Length`, lub Twoje API mog艂oby dostarcza膰 rozmiary plik贸w jako cz臋艣膰 swoich metadanych.
Zarz膮dzanie Wieloma Plikami w Jednym Pobieraniu
API b艂yszczy, gdy grupujemy powi膮zane zasoby. Wyobra藕 sobie u偶ytkownika pobieraj膮cego galeri臋 zdj臋膰, pakiet oprogramowania z dokumentacj膮, czy poziom gry wideo ze wszystkimi teksturami i plikami audio. Mo偶esz przekaza膰 tablic臋 adres贸w URL do `backgroundFetch.fetch()`. Jest to traktowane przez przegl膮dark臋 jako jedno atomowe zadanie, z jednym powiadomieniem i jednym paskiem post臋pu dla ca艂ego pakietu. W Twojej procedurze obs艂ugi `backgroundfetchsuccess`, `bgFetch.matchAll()` zwr贸ci tablic臋 rekord贸w, kt贸re mo偶esz nast臋pnie przetwarza膰 indywidualnie.
Obs艂uga B艂臋d贸w i Scenariusze Awarii
Pobieranie mo偶e si臋 nie uda膰 z wielu powod贸w: serwer zwraca b艂膮d 404, u偶ytkownikowi ko艅czy si臋 miejsce na dysku, lub u偶ytkownik r臋cznie anuluje pobieranie z interfejsu przegl膮darki. Twoja procedura obs艂ugi zdarzenia `backgroundfetchfail` to Twoja siatka bezpiecze艅stwa. Mo偶esz jej u偶y膰 do posprz膮tania cz臋艣ciowych danych, powiadomienia u偶ytkownika w Twojej aplikacji i by膰 mo偶e zaoferowania przycisku ponownej pr贸by. Zrozumienie, 偶e pora偶ka jest mo偶liwa, jest kluczem do budowy solidnego systemu.
Przechowywanie Pobranych Zasob贸w za Pomoc膮 Cache API
Najcz臋stszym i najskuteczniejszym miejscem do przechowywania pobranych zasob贸w internetowych jest Cache API. Jest to mechanizm przechowywania zaprojektowany specjalnie dla obiekt贸w `Request` i `Response`. Umieszczaj膮c pobrane pliki w pami臋ci podr臋cznej, mo偶esz p贸藕niej serwowa膰 je bezpo艣rednio z Service Workera, gdy u偶ytkownik pr贸buje uzyska膰 do nich dost臋p, czyni膮c Twoj膮 aplikacj臋 prawdziwie zdoln膮 do dzia艂ania w trybie offline.
Przyk艂ady U偶ycia w R贸偶nych Bran偶ach
Zastosowania Background Fetch s膮 ogromne i obejmuj膮 liczne globalne bran偶e:
- Media i Rozrywka: Serwisy streamingowe oparte na przegl膮darce mog膮 oferowa膰 tryb offline, pozwalaj膮c u偶ytkownikom w ka偶dym kraju pobiera膰 filmy lub muzyk臋 na czas lotu czy dojazd贸w, tak jak w ich natywnych odpowiednikach aplikacji.
- Edukacja i E-learning: Uniwersytet w Afryce mo偶e udost臋pni膰 portal internetowy dla student贸w do pobierania du偶ych wyk艂ad贸w wideo i interaktywnych materia艂贸w kursowych, zapewniaj膮c, 偶e nawet osoby z s艂abym domowym internetem b臋d膮 mia艂y dost臋p do edukacji.
- Przedsi臋biorstwa i Us艂ugi Terenowe: Globalna firma produkcyjna mo偶e wyposa偶y膰 swoich in偶ynier贸w terenowych w PWA, kt贸ra pozwala im pobiera膰 ogromne schematy 3D i instrukcje techniczne maszyn przed udaniem si臋 do odleg艂ej lokalizacji bez dost臋pu do internetu.
- Podr贸偶e i Turystyka: Aplikacja turystyczna mo偶e pozwoli膰 u偶ytkownikom na pobieranie map offline, przewodnik贸w miejskich i informacji o biletach do miejsca docelowego, oszcz臋dzaj膮c im drogich op艂at za roaming mi臋dzynarodowy.
Kompatybilno艣膰 Przegl膮darek i Perspektywy na Przysz艂o艣膰
W chwili pisania tego tekstu, Background Fetch API jest obs艂ugiwane g艂贸wnie w przegl膮darkach opartych na Chromium, takich jak Google Chrome i Microsoft Edge. Wa偶ne jest, aby sprawdza膰 zasoby takie jak CanIUse.com lub MDN Web Docs w celu uzyskania najnowszych informacji o kompatybilno艣ci. Chocia偶 nie jest jeszcze powszechnie przyj臋te, jego obecno艣膰 w g艂贸wnych przegl膮darkach stanowi znacz膮cy krok naprz贸d. W miar臋 jak platforma internetowa ewoluuje, API takie jak to zamykaj膮 luk臋 w mo偶liwo艣ciach mi臋dzy aplikacjami internetowymi a natywnymi, toruj膮c drog臋 dla nowej generacji pot臋偶nych, odpornych i globalnie dost臋pnych PWA.
Podsumowanie: Budowanie Bardziej Odpornej Sieci dla Wszystkich
Background Fetch API to co艣 wi臋cej ni偶 tylko narz臋dzie do pobierania plik贸w. To deklaracja na temat rodzaju internetu, jaki chcemy budowa膰: odpornego, skoncentrowanego na u偶ytkowniku i dzia艂aj膮cego dla wszystkich, niezale偶nie od ich urz膮dzenia czy jako艣ci po艂膮czenia sieciowego. Przekazuj膮c du偶e transfery do przegl膮darki, uwalniamy naszych u偶ytkownik贸w od niepokoju zwi膮zanego z obserwowaniem paska post臋pu, oszcz臋dzamy ich dane i bateri臋 oraz dostarczamy do艣wiadczenie, kt贸re jest solidne i niezawodne.
Gdy b臋dziesz planowa膰 sw贸j nast臋pny projekt internetowy, kt贸ry obejmuje transfer du偶ych plik贸w, sp贸jrz poza tradycyjne `fetch`. We藕 pod uwag臋 globalny kontekst swoich u偶ytkownik贸w i wykorzystaj moc Background Fetch, aby zbudowa膰 prawdziwie nowoczesn膮 aplikacj臋 dzia艂aj膮c膮 w pierwszej kolejno艣ci w trybie offline. Przysz艂o艣膰 internetu jest trwa艂a i odporna, a teraz Twoje pobierania r贸wnie偶 mog膮 takie by膰.