Avatar billede isl19960 Nybegynder
20. december 2004 - 11:17 Der er 10 kommentarer og
1 løsning

Genindlæs billede uden at "blinke"

Hejsa,

Nu er jeg ikke lige en ørn ud i javascript - men så er det jo godt at man ved hvor man kan spørge...

Jeg har en .html-side med et billede på. Selve billedet bliver løbende ændret (kommer fra et kamera).
Derfor vil jeg gerne ha' siden/billedet genopfrisket med f.eks. 5 sekunders melllemrum.

I første omgang løste jeg det ved at bruge:

<META HTTP-EQUIV="Refresh" CONTENT="5;URL=blabla.html">

Det virker sådan set også fint - bortset fra at billedet "blinker" tydeligt ved opdatering af siden. Det er der vel heller ikke så meget at sige til :-)

Er det mon muligt, at det er bedre at genindlæse billedet via javascript ?
... og hvordan er det lige det gøres ?
... eller er der en hel anden metode der er endnu bedre ?
Avatar billede roenving Novice
20. december 2004 - 11:26 #1
f.eks.

<script type="text/javascript">
function update(){
  var d = new Date();
  document.kamera.src = "billede.jpg?" + d.getTime();
}
window.onload = function(){setInterval('update()',5000)}
</script>

-- du skal selvfølgelig indsætte det rigtige billede-navn og fil-navn på det ...

Bemærk iøvrigt tricket med tidsstemplet, som tvinger browseren til at finde et nyt billede på serveren !-)
Avatar billede isl19960 Nybegynder
20. december 2004 - 11:49 #2
hmmm... jeg må skulle bruge noget mere end det skrevne.

Kan se mig frem til at der bliver henvist til - kamera - men skal det defineres længere nede ?

(undskyld hvis det bare er mig der ikke forstår det)
Avatar billede roenving Novice
20. december 2004 - 11:54 #3
ja, kamera er navnet på billedet:

<img src="billede.jpg" name="kamera">
Avatar billede isl19960 Nybegynder
20. december 2004 - 12:06 #4
Yep - nåede lige præcis at indsætte det selv :-)

Nu har jeg lige startet med:

<img src="" name="kamera">

Så starter billedet "tomt" - og det indlæses fint efter den givne tid - hvis altså jeg fjerner det her med tidsstemplet.
Altså ved jeg at scriptet bliver kørt ihvertfald en enkelt gang.

... men den genindlæser ikke billedet. Har det noget med tidsstemplet at gøre ?
Avatar billede roenving Novice
20. december 2004 - 12:10 #5
Jepz, det har det sikkert !-)

-- du skal måske gøre noget ved serveren, men umiddelbart skulle den bare ignorere det, hvis det er et billede ...
Avatar billede isl19960 Nybegynder
20. december 2004 - 12:22 #6
I mit simple brug er der ikke nogen "server" som sådan. Har bare lavet .html-filen og starter den i IE - det skulle også være nok.

Hvis det kan hjælpe dig er her hele koden:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
  <title>V&aelig;gt Afdeling</title>
<script type="text/javascript">
function update(){
  document.kamera.src = "ftp://192.168.16.20/fjernvejning/hassel.jpg";
}
window.onload = function(){setInterval('update()',5000)}
</script>
</head>
<body>
<img name="kamera" alt="afdeling" src=""
style="width: 100%; height: 100%;">
</body>
</html>
Avatar billede roenving Novice
20. december 2004 - 12:24 #7
Virker det ikke med tidsstemplet ?-)
Avatar billede isl19960 Nybegynder
20. december 2004 - 13:00 #8
Nej...

Hvis koden ser således ud fremkommer der slet ikke noget billede:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
  <title>V&aelig;gt Afdeling</title>
<script type="text/javascript">
function update(){
  var d = new Date();
  document.kamera.src = "ftp://192.168.16.20/fjernvejning/hassel.jpg?" + d.getTime();
}
window.onload = function(){setInterval('update()',5000)}
</script>
</head>
<body>
<img name="kamera" alt="Afdeling" src=""
style="width: 100%; height: 100%;">
</body>
</html>
Avatar billede isl19960 Nybegynder
21. december 2004 - 08:59 #9
Ingen der kan hjælpe ?
Avatar billede isl19960 Nybegynder
28. december 2004 - 15:00 #10
Det kan da ikke passe... kan det ?
Avatar billede isl19960 Nybegynder
19. oktober 2005 - 08:29 #11
Nå - nu skal spørgsmålet vist lukkes... dog uden en løsning :-(
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

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