Adres URL z zapytaniem wyłącza buforowanie?

12

Czy dołączenie ciągu zapytania do adresu URL powoduje, że przeglądarki nigdy go nie buforują? Na przykład moja witryna robi coś takiego:

/radar-picture.png?v=sep2013

Wygląda na to, że FireFox nigdy nie buforuje tego obrazu; jest pobierany na każde żądanie.

Chciałbym, aby FireFox buforował go tak długo, jak chce. Chcę tylko zmusić go do pobrania, gdy v=parametr się zmieni.

Pan Smith
źródło
1
Myślę, że możesz to zrobić, jeśli po prostu zmienisz samą nazwę pliku zamiast zapytania. Więc teraz nazwa pliku będzie, radar-picture-sep2013.pnga kiedy zmieni się w pewnym momencie w przyszłości, będzie radar-picture-jan2014.png. Możesz skonfigurować maksymalny wiek PNG na rok, więc jeśli nazwa pliku się nie zmieni, przeglądarka może załadować buforowane zdjęcie przez długi czas.
vstm

Odpowiedzi:

3

Dodanie pary klucz / wartość ciągu zapytania do zasobu statycznego (takiego jak obraz, CSS lub JavaScript) może powodować problemy z buforowaniem .

W szczególności, ponieważ wspomniałeś o Firefoksie , twój problem może być związany z „kolizją pamięci podręcznej”, gdzie:

Funkcje skrótu pamięci podręcznej dysku Firefox mogą generować kolizje dla adresów URL, które różnią się tylko nieznacznie, a mianowicie tylko na granicach 8 znaków. Gdy zasoby mieszają się z tym samym kluczem, tylko jeden z zasobów jest utrwalany w pamięci podręcznej dysku; pozostałe zasoby z tym samym kluczem muszą zostać ponownie pobrane w celu ponownego uruchomienia przeglądarki. Dlatego jeśli używasz odcisków palców lub w inny sposób programowo generujesz adresy URL plików, aby zmaksymalizować współczynnik trafień w pamięci podręcznej, unikaj problemu kolizji skrótu w Firefoksie, upewniając się, że aplikacja generuje adresy URL różniące się ponad 8-znakowymi granicami.

[Źródło: https://developers.google.com/speed/docs/best-practices/caching ]

Mike Hudson
źródło
7
Co to jest „granica 8 znaków” i JAK mogę uniknąć tej kolizji? Jak zatem powinny wyglądać moje adresy URL?
Andrew
2

Ta odpowiedź na stackoverflow twierdzi, że niektóre przeglądarki reagują inaczej na trafienie Enter w pasku adresu vs kliknięcie linku, gdy adres URL zawiera ciąg zapytania: https://stackoverflow.com/a/85386/1145388

Podczas testowania upewnij się, że klikasz linki zamiast odświeżania lub klikania Enter na pasku adresu URL.

Stephen Ostermiller
źródło
2
Myślę, że odpowiedź na stackoverflow może być nieaktualna. Kiedy umieszczam ciąg zapytania style.css?v=sep2013w arkuszach stylów i 150 KB background-image:url('bgimage.jpg?v=sep2013');, nawigacja po stronie (poprzez klikanie linków lub pisanie w pasku adresu) jest bardzo wolna w FireFox.
Pan Smith,