Autor Zpráva
Lucas
Profil *
Ahojte, potrebujem poradit resp. najst myslienku ako na to:
Za pomoci jQuery mam urobenu svoju kniznicu na pracu s Ajaxom. Vsetko funguje pekne.

Robim administraciu fotogalerie: upload, edit, vymazavanie fotiek...atd
Toto tiez bezi OK, az na jednu vec, tu je postup:

1) obrazok za pomoci ajaxu uploadnem na server, nasledne zobrazim zoznam fotiek. Novy obrazok sa mi tam zobrazi OK
2) obrazok zeditujem (prepisem novym obrazkom s inou koncovkou), nasledne zobrazim zoznam fotiek. Nova fotka sa zobrazi OK.
3) obrazok zeditujem (prepisem inym obrazkom s ROVNAKOU koncovkou), nasledne zobrazim zoznam fotiek. Tu nastava problem. V zozname sa zobrazuje stale povodny obrazok a nie novy. Novy obrazok sa zobrazi az ked dam refresh browsera (F5).
Cize ked na urovni ajaxu vymazem obrazok test.jpg, nahram tam novy test.jpg, tak sa mi v zozname zobrazuje ten stary test.jpg

Cize podla mna niekde v Cache pamati je stale zapisany stary obrazok. Existuje nejaka moznost vymazat cache pomocou Javascriptu resp. na urovni Ajaxu ?
Skusal som menit aj hlavicky pomocou xhr.setRequestHeader("Cache-Control", "no-cache, must-revalidate"); ale to nepomohlo.
Tiez som v PHP suboroch nastavil hlavicky aby sa dokument nezapisoval do Cache... nepomohlo

Riesil uz niekto podobny problem ? Alebo nejaky napad na riesenie ?
Dakujem.
ah01
Profil
Nejjednodušší asi bude při změně názvu přidat do adresy obrázku nějaký náhodný argument, např. "test.jpg?rnd=123". Prohlížeč to pak podle adresy bere jako jiný soubor. Typicky se k tomu používá Date.
img.src = "test.jpg?rnd=" + (+ new Date()); 
panhuhu
Profil
Dát souboru jiné jméno vždy nepomůže. Například IE je schopný to ignorovat. Půl roku dozadu jsem řešil podobný problém s fancyupload. Je tam pár řešení, ale žádné stoprocentní. Ale je možné, že na obrázky to zabere.
Lucas
Profil *
pomohlo to, dakujem.
los
Profil *
> Dát souboru jiné jméno vždy nepomůže. Například IE je schopný to ignorovat.
Ale pomôže. IE to určite neignoruje.
Michael Banzet
Profil *
Co tak zkusit něco, jako hlavičku, "nebrat z kešeně" ;-)
xmlhttp.setRequestHeader("cache-control", "content='no-cache'");
Michael

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: