czas trzymania treści strony WWW w pamięci przeglądarki

0

Mam serwer, na którym siedzi moja stronka. Jest tam też pewien plik JSON, który zawiera listę pewnych usług. A ten z kolei odczytuje strona, na której jest formularz. Czyli w formularzu mam do wyboru opcje wygenerowane na podstawie zawartości pliku JSON. Łatwiej podmienić JSON, niż grzebać w kodzie HTML.
2 tygodnie temu podmieniłem ten plik. Sprawdzam, czy działa. Widać, że w pamięci przeglądarki dalej siedzi stary plik, więc ręcznie pobrałem nową treść. Ok, działa.
Tymczasem dzisiaj klient mi zgłasza, że formularz mu generuje nieaktualną listę usług. Fakt, jakiś czas temu ten klient tą stronę wyświetlił, tuż przed podmianką JSON.

Czy to normalne, że przeglądarka nie "zauważyła" zaktualizowanego pliku? A może coś jest nie tak z serwerem?

2

Domyślnie przeglądarka nie powinna cachować plików json, musisz sprawdzić:

  • Jakie nagłówki przychodzą w odpowiedzi tego pliku (można cache wymusić w nagłówkach)
  • Ustawienia przeglądarki klienta, wersja itp.
  • Klient czasami nie potrafi w komputer, może wystarczy mu powiedzieć żeby odświeżył stronę
0

U mnie ten problem był na 2 przeglądarkach i na różnych komputerach. Dopiero jak w oknie przeglądarki wyświetliłem tego JSONa, to poszło. Faktycznie załadowała się aktualna treść. Także coś nie halo z serwerem lub w kodze strony WWW.

2

Wrzuć headery.

0
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width = device-width, initial-scale = 1.0, shrink-to-fit = no">
    <link name="favicon" type="image/x-icon" href="icon.ico" rel="shortcut icon">
    <link rel="arkusz.css">
    <script src="skrypt.js" defer></script>
</head>
3

@Schadoow miał na myśli nagłówki odpowiedzi HTTP (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers) pliku JSON który pobierasz w przeglądarce. Możesz je podejrzeć w narzędziach deweloperskich przeglądarki.

1

@kosmonauta80
screenshot-20220222215007.png

0

Accept-Ranges: bytes
Age: 0
Cache-Control: max-age=1209600
Content-Encoding: gzip
Content-Length: 117
Content-Type: application/json
Date: Tue, 22 Feb 2022 1730 GMT
ETag: "106-5d7ds2b2ff3c0-gzip"
Last-Modified: Tue, 08 Feb 2022 0839 GMT
Server: Apache/2
Vary: Accept-Encoding
X-CDN-nazwa.pl-age: 0
X-CDN-nazwa.pl-location: XXX
X-CDN-nazwa.pl-policyused: cdn=1209600

1

Masz cache ustawiony na 14 dni. Ustaw na Cache-control: no-cache dla tego zapytania. albo max-age=0 zalezy od przeglądarki i jaki haki trzeba stosować :p

W devtoolsach to ładnie widać skąd jest brany dany plik:

cache włączony:
screenshot-20220222235602.png

cache wyłączony:
screenshot-20220222235627.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1