Opis problemu
Po wgraniu / nadpisaniu / zastąpieniu obrazka na serwer pod tą samą nazwą co poprzedni, przeglądarka nie odświeża go przy wyświetlaniu. To znaczy.:
przykład z życia wzięty:
Tworzę ustawianie avataru. Mam stronę profilową, gdzie wyświetlam obecny avatar. Mam formularz z polem FILE do wgrania innego pliku, który zamieni obecny avatar. Po wysłaniu formularza nowy plik jest wrzucany pod tę samą nazwą, jaką miał poprzedni avatar.
I w tym miejscu jest problem. Dość często jest sytuacja, że wgraniu tego nowego pliku w kolejnej odsłonie profilu użytkownika pojawia się ciągle stary avatar, bo przeglądarka nie odświeżyła sobie jeszcze tego zdjęcia. Jak temu zaradzić?
Rozwiązanie
Aby temu zaradzić, można dodać do adresu URL avataru losowego łańcucha znaków, korzystając z metody random obiektu Math w java script’cie. A mianowicie:
<script type="text/javascript"> document.write("<img src=\"adres/avatar.jpg?"+ Math.random() +" \" width=\"50px\" height=\"80px\" />"); </script>
Takie rozwiązanie wymusi na przeglądarce pobranie aktualnej grafiki z serwera, zamiast skorzystanie z obrazka znajdującego się w pamięci podręcznej.