{"id":397187,"date":"2026-09-21T17:19:50","date_gmt":"2026-09-21T17:19:50","guid":{"rendered":"https:\/\/republica.com.do\/banco-de-proyectos\/?p=397187"},"modified":"2026-10-20T14:53:45","modified_gmt":"2026-10-20T14:53:45","slug":"service-worker-i-cache-storage-trwaly-cache-dla-pwa-kasyna","status":"publish","type":"post","link":"https:\/\/republica.com.do\/banco-de-proyectos\/service-worker-i-cache-storage-trwaly-cache-dla-pwa-kasyna\/","title":{"rendered":"Service worker i Cache Storage: trwa\u0142y cache dla PWA kasyna"},"content":{"rendered":"<p>HTTP cache w przegl\u0105darce mobilnej ko\u0144czy si\u0119 w momencie, gdy u\u017cytkownik zamknie kart\u0119 albo system wyczy\u015bci pami\u0119\u0107 pod presj\u0105 RAM. Service worker i Cache Storage to zupe\u0142nie inna warstwa: skrypt dzia\u0142a w tle, a zapisane zasoby zostaj\u0105 na dysku telefonu nawet po restarcie przegl\u0105darki. Dla aplikacji Goldbet, kt\u00f3ra dzia\u0142a jako PWA poza Google Play i App Store, ta r\u00f3\u017cnica decyduje o tym, czy kasyno w telefonie otworzy si\u0119 w dwie sekundy na s\u0142abym roamingu, czy utknie na bia\u0142ym ekranie. Poni\u017cej rozk\u0142adam temat na konkretne elementy konfiguracji, kt\u00f3re warto sprawdzi\u0107 w praktyce.<\/p>\n<h2>Service worker jako warstwa po\u015brednia mi\u0119dzy sieci\u0105 a ekranem kasyna<\/h2>\n<p>Zacznijmy od fundamentu. Goldbet udost\u0119pnia aplikacj\u0119 PWA, co oznacza, \u017ce ca\u0142y interfejs to zestaw plik\u00f3w HTML, CSS i JavaScript serwowanych przez przegl\u0105dark\u0119. Service worker to skrypt rejestrowany przy pierwszym wej\u015bciu, kt\u00f3ry przejmuje kontrol\u0119 nad \u017c\u0105daniami sieciowymi wychodz\u0105cymi ze strony. Zamiast pyta\u0107 serwer o ka\u017cdy plik, przegl\u0105darka najpierw sprawdza, czy service worker ma odpowied\u017a w Cache Storage. Je\u015bli ma, zwraca j\u0105 natychmiast, bez czekania na odpowied\u017a z serwera.<\/p>\n<p>Kluczowa r\u00f3\u017cnica wzgl\u0119dem klasycznego HTTP cache: nag\u0142\u00f3wki Cache-Control i ETag dotycz\u0105 pojedynczej sesji przegl\u0105darki i konkretnej karty. Zamkni\u0119cie karty, wyczyszczenie danych witryny albo restart telefonu potrafi\u0105 wyzerowa\u0107 ten bufor. Cache Storage jest trwa\u0142y, powi\u0105zany z originem domeny, a nie z kart\u0105. Service worker dzia\u0142a dalej po zamkni\u0119ciu wszystkich kart, bo przegl\u0105darka utrzymuje go w tle i wybudza przy zdarzeniach push lub fetch. To w\u0142a\u015bnie ta w\u0142a\u015bciwo\u015b\u0107 odpowiada za szybkie \u0142adowanie PWA kasyna przy s\u0142abym zasi\u0119gu w roamingu, gdzie pojedyncze \u017c\u0105danie HTTP potrafi trwa\u0107 kilka sekund.<\/p>\n<p>Praktyczna konsekwencja: u\u017cytkownik dodaje skr\u00f3t do kasyna przez przegl\u0105dark\u0119 internetow\u0105, a przy pierwszym uruchomieniu service worker zapisuje pow\u0142ok\u0119 aplikacji (shell), logo, czcionki i podstawowe arkusze styl\u00f3w. Kolejne wej\u015bcia, nawet po dniu przerwy, startuj\u0105 z cache. Interfejs mobilny dostosowuje si\u0119 do wymiar\u00f3w ekranu, ale same wymiary i regu\u0142y responsywno\u015bci te\u017c siedz\u0105 w cache, wi\u0119c nie ma op\u00f3\u017anienia przy obrocie telefonu.<\/p>\n<h3>Co trafia do Cache Storage, a co musi i\u015b\u0107 do sieci<\/h3>\n<p>Nie wszystko warto cache&#8217;owa\u0107. Zasoby statyczne (HTML szkieletu, CSS, ikony, fonty) to kandydaci do strategii cache-first. Odpowiedzi API dotycz\u0105ce salda, historii transakcji i stanu bonusu musz\u0105 i\u015b\u0107 do sieci, ewentualnie z fallbackiem network-first i kr\u00f3tkim timeoutem. Gry mobilne w formie katalogu miniatur mo\u017cna trzyma\u0107 w cache, ale same gry zwykle \u0142aduj\u0105 si\u0119 dynamicznie.<\/p>\n<p>Procedura weryfikacji jest prosta. Otw\u00f3rz DevTools w Chrome na Androidzie (lub Safari Web Inspector na iPhone), przejd\u017a do zak\u0142adki Application, potem Cache Storage i sprawd\u017a, czy widzisz wpisy z nazw\u0105 swojego cache (np. goldbet-shell-v3). W zak\u0142adce Service Workers powinien by\u0107 status &#8220;activated and is running&#8221;. <a href=\"https:\/\/goldbet-play.pl\/aplikacja\">https:\/\/goldbet-play.pl\/aplikacja\/<\/a> offers additional context worth reviewing. Je\u015bli widzisz &#8220;waiting&#8221;, nowa wersja skryptu czeka na zamkni\u0119cie starych kart, co przy PWA oznacza, \u017ce u\u017cytkownik mo\u017ce przez kilka dni pracowa\u0107 na starej wersji. Warto wymusi\u0107 skipWaiting i clients.claim, ale ostro\u017cnie, bo to mo\u017ce przerwa\u0107 aktywn\u0105 sesj\u0119.<\/p>\n<h2>Bezpiecze\u0144stwo, licencja i pu\u0142apki fa\u0142szywych plik\u00f3w APK<\/h2>\n<p>Goldbet posiada licencj\u0119 wydan\u0105 przez Anjouan, jurysdykcj\u0119 na Zwi\u0105zku Komor\u00f3w. To licencja offshore, co oznacza brak nadzoru polskiego regulatora i brak ochrony w sporach takiej jak w Total Casino, jedynym legalnym kasynie internetowym z polsk\u0105 licencj\u0105. Monopol Totalizatora Sportowego dotyczy gier hazardowych online w Polsce, a operatorzy offshore dzia\u0142aj\u0105 poza tym systemem. Dla u\u017cytkownika to informacja o ryzyku, ale te\u017c o tym, sk\u0105d bierze si\u0119 brak aplikacji w sklepach.<\/p>\n<p>Aplikacja Goldbet nie jest dost\u0119pna w Google Play i App Store. To nie jest luka w dystrybucji, a konsekwencja polityki sklep\u00f3w wobec operator\u00f3w bez lokalnej licencji. Dlatego u\u017cytkownik dodaje skr\u00f3t do kasyna przez przegl\u0105dark\u0119 internetow\u0105, a nie pobiera plik instalacyjny. PWA jest bezpieczniejsza od zewn\u0119trznych plik\u00f3w APK, bo dzia\u0142a w piaskownicy przegl\u0105darki, nie prosi o uprawnienia do SMS-\u00f3w ani kontakt\u00f3w i nie mo\u017ce instalowa\u0107 dodatkowego kodu po cichu. Fa\u0142szywe pliki APK kr\u0105\u017c\u0105ce po forach to realne zagro\u017cenie: podszywaj\u0105 si\u0119 pod Goldbet APK, a w \u015brodku siedzi malware przechwytuj\u0105cy dane logowania.<\/p>\n<p>Na iOS sprawa wygl\u0105da jeszcze pro\u015bciej. Goldbet iOS nie istnieje jako plik do pobrania, bo Apple nie dopuszcza aplikacji hazardowych bez licencji lokalnej. U\u017cytkownik iPhone&#8217;a otwiera Safari, loguje si\u0119, wybiera &#8220;Dodaj do ekranu g\u0142\u00f3wnego&#8221; i od tej pory ikona dzia\u0142a jak normalna aplikacja. Na Androidzie analogicznie robi to Chrome. Na desktopie (Windows, macOS) PWA instaluje si\u0119 z paska adresu jako osobne okno.<\/p>\n<p>Kod WELCOME2026 s\u0142u\u017cy do odbioru bonusu na telefonie i wpisuje si\u0119 go w panelu promocji po rejestracji. Warto sprawdzi\u0107 warunki obrotu i limity wyp\u0142at, zanim wp\u0142acisz \u015brodki. Wp\u0142aty i wyp\u0142aty obs\u0142uguj\u0105 popularne metody, a waluty w kasynie obejmuj\u0105 PLN i kilka innych, co ma znaczenie przy przewalutowaniu. Wszystko to dzieje si\u0119 w interfejsie PWA, wi\u0119c cache nie mo\u017ce blokowa\u0107 \u015bwie\u017cych danych o saldzie. Dlatego odpowiedzi API musz\u0105 omija\u0107 cache-first i i\u015b\u0107 przez network-first z kr\u00f3tkim timeoutem.<\/p>\n<p>Na koniec checklista wdro\u017ceniowa dla dociekliwych. Zarejestruj service worker z zakresem obejmuj\u0105cym ca\u0142y origin, ale nie cache&#8217;uj stron logowania i p\u0142atno\u015bci. Ustaw wersjonowanie nazw cache (v1, v2) i usuwaj stare przy activate. Dodaj obs\u0142ug\u0119 offline dla szkieletu, ale poka\u017c wyra\u017any komunikat, gdy brak sieci przy pr\u00f3bie wp\u0142aty. Przetestuj na throttlingu Slow 3G w roamingu: je\u015bli pow\u0142oka \u0142aduje si\u0119 poni\u017cej dw\u00f3ch sekund, cache dzia\u0142a. Sprawd\u017a, czy po zamkni\u0119ciu karty i ponownym otwarciu skr\u00f3tu service worker nadal jest aktywny. To w\u0142a\u015bnie ten test odr\u00f3\u017cnia trwa\u0142y cache od zwyk\u0142ego HTTP cache i pokazuje, czy PWA kasyna naprawd\u0119 dzia\u0142a w telefonie, czy tylko wygl\u0105da dobrze na Wi-Fi.<\/p>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"Article\",\"headline\":\"Service worker i Cache Storage: trwa\u0142y cache dla PWA kasyna\",\"description\":\"Service worker i Cache Storage zapewniaj\u0105 trwa\u0142y cache PWA kasyna. Dzia\u0142aj\u0105 nawet po zamkni\u0119ciu karty i przy s\u0142abym zasi\u0119gu. Sprawd\u017a, jak to skonfigurowa\u0107.\",\"inLanguage\":\"pl\",\"datePublished\":\"2026-10-20T14:51:28Z\",\"articleBody\":\"HTTP cache w przegl\u0105darce mobilnej ko\u0144czy si\u0119 w momencie, gdy u\u017cytkownik zamknie kart\u0119 albo system wyczy\u015bci pami\u0119\u0107 pod presj\u0105 RAM. Service worker i Cache Storage to zupe\u0142nie inna warstwa: skrypt dzia\u0142a w tle, a zapisane zasoby zostaj\u0105 na dysku telefonu nawet po restarcie przegl\u0105darki. Dla aplikacji Goldbet, kt\u00f3ra dzia\u0142a jako PWA poza Google Play i App Store, ta r\u00f3\u017cnica decyduje o tym, czy kasyno w telefonie otworzy si\u0119 w dwie sekundy na s\u0142abym roamingu, czy utknie na bia\u0142ym ekranie. Poni\u017cej rozk\"}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>HTTP cache w przegl\u0105darce mobilnej ko\u0144czy si\u0119 w momencie, gdy u\u017cytkownik zamknie kart\u0119 albo system wyczy\u015bci pami\u0119\u0107 pod presj\u0105 RAM. Service worker i Cache Storage to zupe\u0142nie inna warstwa: skrypt dzia\u0142a w tle, a zapisane zasoby zostaj\u0105 na dysku telefonu nawet po restarcie przegl\u0105darki. Dla aplikacji Goldbet, kt\u00f3ra dzia\u0142a jako PWA poza Google Play i [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"nf_dc_page":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"nfd_image_url":"","nfd_onboarding_generated":"","footnotes":""},"categories":[823],"tags":[],"class_list":["post-397187","post","type-post","status-publish","format-standard","hentry","category-post"],"acf":[],"_links":{"self":[{"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/posts\/397187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/comments?post=397187"}],"version-history":[{"count":1,"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/posts\/397187\/revisions"}],"predecessor-version":[{"id":397188,"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/posts\/397187\/revisions\/397188"}],"wp:attachment":[{"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/media?parent=397187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/categories?post=397187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/republica.com.do\/banco-de-proyectos\/wp-json\/wp\/v2\/tags?post=397187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}