
Tekst: Kolofon
Skrypt działający w tle przeglądarki to najbardziej podstępny element całego stosu. Przeszedł siedem wersji, w większości w ciągu jednej sesji, i każda naprawiała problem, który stawał się widoczny dopiero po naprawieniu poprzedniego.
Docelowy podział strategii jest taki. Nawigacja po stronach: najpierw sieć, a z pamięci dopiero gdy sieci nie ma. Dzięki temu czytelnik online zawsze widzi świeżą treść, a offline dostaje ostatnią znaną wersję. Zasoby budowane i obrazy: najpierw pamięć, bo mają w nazwie skrót zawartości — nowa wersja to nowa nazwa, więc stara kopia nigdy nie jest nieaktualna.
Ta druga zasada jest ważniejsza, niż wygląda. Cała poprawność mechanizmu opiera się na tym, że nazwa pliku zmienia się razem z jego zawartością. Gdyby zasoby miały stałe nazwy, strategia „najpierw pamięć” serwowałaby stary kod w nieskończoność.
Najtrudniejszy okazał się nie sam tryb offline, tylko przechodzenie między podstronami bez przeładowania, gdy sieci nie ma. Aplikacja doczytuje wtedy fragmenty kodu na żądanie, a te fragmenty nie zawsze były w pamięci podręcznej. Twarde przeładowanie działało, przejście „w locie” nie.
Rozwiązaniem — i mówimy to wprost, bo to obejście, nie usunięcie przyczyny — jest automatyczne przeładowanie strony w obsłudze błędu, zabezpieczone przed pętlą. Dla czytelnika efekt jest właściwy. Dla nas to dług zapisany w komentarzu w kodzie. Ten sam mechanizm wrócił do nas kilka tygodni później w zupełnie innej roli, o czym jest osobny wpis w drugiej serii.
Kolofon