[JS/PHP] Wymuszenie ponownego pobrania obrazka

0

Problem wygląda następująco - jest sobie obrazek (avatar), który user może sobie zmienić. Po zmianie jednak obrazek się nie odświeża w przeglądarce bez wciśnięcia crtl+f5. Pytanie: czy jest jakiś sposób na zmuszenie przeglądarki do ponownego wczytania obrazka bez ingerowania w jego url?

może przez późną godzinę, może przez braki w wiedzy jakoś mi nie przychodzi nic sensownego do głowy :/. Rozwiązanie może wykorzystywać zarówno JS, jak i PHP, ale obrazek nie powinien być generowany przez PHP (i tu właśnie trudność)

0

Zmusic nie mozesz, ale mozesz ladnie poprosic. Wiekszosc aktualnych przegladarek przychyla sie do prosby ;)

header ("Expires: Mon, 36 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                          

PS. Oczywiscie to sklania przegladarke do odswiezenia wszystkich obrazkow i elementow zapisywalnych do cache.

0

jest prostszy sposób...

doklejasz do linka obrazka po pytajniku aktualną date...

echo '<img src="obrazek.jpg?' . time() . '"' />';

0

nie wiem czy prostszy - musiałbym zmienić linki w całym serwisie. No i wtedy przeglądarka musiała by za każdym razem pobierać ten sam avatar - wydajność, pomijam tu też estetykę

Rozwiązanie johny'ego jest prawie optymalne (nie wiem dlaczego, czasem nie odświeża) - a ja nie wiedziałem, że headery dotyczą całej strony, nie tylko danego pliku

0

Nie wiem czemu czasem nie odswieza - to tylko prosba do przegladarki, wiec byc moze istnieja sytuacje, kiedy jej nie respektuje. W moim przypadku, kiedy mi to bylo potrzebne taki kod spelnial wymagania ;)

PS. Headery dotycza calej zawartosci wysylanej, wiec calej strony.

0

chyba nie ma lepiej pasującego rozwiązania, więc nie szukam dalej, dzieki ;)

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