Changelog

Kolofon · 22 września 2026

0.13.24 — offline bez fali

gdy pierwsza wizyta na telefonie wywoływała w tle ćwierć tysiąca żądań i błąd 1102 u samego czytelnika

0.13.24 — offline bez fali

Tekst: Kolofon

Instancje mogą działać offline: service worker trzyma w pamięci wpisy, żeby dało się je czytać bez sieci. Zapełnianie tej pamięci było jednak za gorliwe. Service worker zaraz po instalacji pobierał wszystkie wpisy z manifestu, kilka sekund później strona prosiła go o to samo drugi raz, a zmiana wersji językowej dokładała trzeci komplet.

W jednej z instancji to ponad sto wpisów w każdym języku. Zmierzyliśmy to na żywo, w logach workera: jedno wejście na świeżym telefonie i kliknięcie przełącznika języka dało 267 żądań w ciągu 75 sekund, z czego 256 to strony pobierane w tle. Każda wymaga renderowania po stronie serwera, więc na planie z limitem czasu procesora część żądań — także tych, o które prosił sam czytelnik — kończyła się błędem 1102. Do tego kilka megabajtów danych komórkowych, o które nikt nie pytał.

Od 0.13.24 service worker przy instalacji zapisuje tylko szkielet strony. Po wpisy prosi go wyłącznie strona, i to ostrożnie: dopiero dwadzieścia sekund po załadowaniu, najwyżej dziesięć najnowszych, raz na sesję i wersję językową. Przy włączonym oszczędzaniu danych albo na połączeniu 2G — wcale. Sam service worker robi półtorej sekundy pauzy między pobraniami i nie przyjmuje drugiej kolejki, dopóki trwa pierwsza.

Tryb offline dalej działa: najnowsze wpisy są pod ręką, a każda odwiedzona strona i tak trafia do pamięci przy zwykłym czytaniu. Szablon service workera w silniku dostał te same zmiany, a instancje z własnym plikiem — tę samą łatkę i nową wersję pamięci.