Avatar billede d.kryger Praktikant
08. juni 2007 - 13:21 Der 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?
Avatar billede roenving Novice
08. juni 2007 - 13:33 #1
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>
Avatar billede d.kryger Praktikant
08. juni 2007 - 14:37 #2
Ja, det var da en mulighed... Læg et svar og du får point! God weekend.
Avatar billede madeindk Nybegynder
08. juni 2007 - 14:39 #3
Jeg koder ASP og plejer at gøre sådan her:
<img src="http://www.eksperten.dk/img/elogo.png?noCache=<%= Now() %>" style="border:none;" /> - men det giver vel sammen resultat i sidste endnu :-)
Avatar billede roenving Novice
08. juni 2007 - 15:06 #4
-- 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]
Avatar billede olebole Juniormester
11. juni 2007 - 14:13 #5
<ole>

- *ABSOLUT* ikke kønt, men blot en syg idé til noget, der også virker med det samme, det læses:

<img src="_http://www.eksperten.dk/img/elogo.png" onerror="this.setAttribute('src', this.getAttribute('src').substr(1)+'?u='+new Date().getTime())">

:oD

/mvh
</bole>
Avatar billede d.kryger Praktikant
12. juni 2007 - 11:50 #6
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.

Tak for hjælpen.
Avatar billede roenving Novice
12. juni 2007 - 12:31 #7
-- 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 !-)

-- els velbekomme !-)
Avatar billede roenving Novice
12. juni 2007 - 12:57 #8
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester