08. juni 2007 - 13:21Der er
7 kommentarer og 1 løsning
Tvinge browseren til at hente billedet igen
Hej eksperter.
Jeg har en side hvor mine besøgende kan uploade et billede og bagefter se det. Når de så ser det kan de uploade et nyt billede hvis det er det forkerte billede de har uploadet, hvorefter man havner på samme side igen, hvor man så igen kan se billedet.
Det eneste problem er bare at den viser det første billede som jo er blevet "chached"! Kan man via noget kode tvinge browseren til at hente det billede på serveren hver gang?
Typisk vil man sætte et timestamp på billedet, nogen gange vil det være nok at sætte metatags, men da brugeren selv kan stille eenskaberne for opdatering, er det sikreste at sætte en forskel på ...
F.eks. kan man lave en generel js-funktion, der sætter det på:
<script type="text/javascript"> window.onload = function(){ var pics = document.getElementsByTagName("img"); var stamp = new Date().getTime(); for(i=0,im=pics.length;im>i;i++) pics[i].setAttribute("src",pics[i].getAttribute("src") + "?t=" + stamp); } </script>
-- næh, hvis man kan gøre det med asp-kode, vil det spare en indlæsning af alle billeder på siden (der kan dog være problemer med hurtig opdatering, hvis der ikke bruges et tilstrækkeligt præcist timestamp !-)
-- mit eksempel ovenfor er baseret på, at man ikke kan lave om i koden server-side, kan man det, et det altså klart at foretrække, for så indlæses de(t) rigtig(e/t) første gang !o]
Efter roenving foreslog det med timestamp, så lavede jeg det sådan at den navngiver billedet sådan: "billednavn_123456789.jpg", hvor tallene er timestampet. Så jeg vil gerne give point til roenving, for at få mig i den rigtige retning.
-- tjah, men fidusen med at sætte timestampet som en query-variabel er dog mere holdbar, da du så ikke behøver at lave billedets navn om hele tiden !-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.