Avatar billede donslund Nybegynder
23. februar 2005 - 08:20 Der er 10 kommentarer og
1 løsning

Opdater hvis nyere fil findes

Er det muligt at lave en funktion der opdaterer et billede hvis der findes en nyere version på serveren?

Altså hvis nu man kommer ind på sitet kl 11.00.25 og den derved viser et billede der er uploadet kl. 10.55.35.
Mens man er på siden bliver der uploadet et billede kl. 11.05.10. Da skal billedet automatisk opdateres hos brugeren.

Er det forståeligt?
Avatar billede mr_bacardi Nybegynder
23. februar 2005 - 10:39 #1
Når du uploader et nyt - bliver det til en ny fil på serveren? Altså gemmer den de gamle?
Hvis den ikke gemmer de gamle (eller det som skal vises altid har det samme filnavn) - er det forholdsvis simpelt og kan laves med JavaScript.
Hvis den gemmer de gamle, vil jeg foreslå du laver en kombination af JavaScript og et serverside sprog (ASP / PHP)
Avatar billede donslund Nybegynder
23. februar 2005 - 10:44 #2
Den overskriver den gamle fil.
Avatar billede mr_bacardi Nybegynder
23. februar 2005 - 10:57 #3
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>
<script type="text/javascript">
var r;
function loadPic() {
var loca="pictures/newest.jpg"; //Hvor billedet ligger
var sec="3"; //Antal sekunder imellem den henter nyt billede
r = Math.random(); //Generer tilfældigt tal
document.getElementById("pict").src=loca+"?"+r; //Ændrer billedet
alert(document.getElementById("pict").src);
setTimeout("loadPic()", sec*1000); //Kører funktionen igen efter X (sec) antal sekunder.
}
</script>

</head>

<body onLoad="loadPic();">
<img src="" ID="pict" alt="Billedet som skifter..." />


</body>
</html>


Sig til hvis du vil have en forklaring på det ;)
Avatar billede donslund Nybegynder
23. februar 2005 - 11:01 #4
Nej, jeg forstår det udemærket godt. Men det vil altså sige, at du hvert 3. sekund opdatere billedet. Du tjekker ikke om der er et nyt. Den opdaterer uanset om der er et nyt billede eller ej.

Har jeg forstået det rigtigt?
Avatar billede mr_bacardi Nybegynder
23. februar 2005 - 11:09 #5
Ja, med nudagens internet forbindelser skulle det ikke være noget problem.
Det er på samme måde som forskellige banner rotationssystemer virker, bare uden at vælge et nyt billede hver gang.
Det ér også muligt det kun opdaterer hver gang der kommer et nyt, men hvis det skal gøres uden brugeren manuelt opdaterer siden, for at se om der er et nyt, kræver det at du holder en fast forbindelse med serveren og udsender signaler til brugerens computer om at nu er der et nyt billede. - Denne løsning vil jeg kun anbefale hvis det drejer sig om at der kommer nyt billede hvert sekund, og hvis det er vigtigt billedet opdateres i netop det øjeblik det er uploadet, det kan sammenlignes med en chat, hvilket det vel ikke er? (Billed chat af en art)
Ud fra hvor tit du vil uploade billede, vil jeg råde dig til at ændre variablen sec så den ikke tjekker hele tiden, de 3 sekunder er bare for at vise den virker, ligeledes bør du fjerne alert'en, som igen blot indikerer at den rent faktisk indlæser billedet igen.
Du bør nok sætte den til 30 eller 60 sekunder, hvis du opdaterer billedet et par gange i timen.
Avatar billede donslund Nybegynder
23. februar 2005 - 11:32 #6
Jeps. Smid et svar så falder der point.
Avatar billede mr_bacardi Nybegynder
23. februar 2005 - 11:33 #7
svar :)
Avatar billede donslund Nybegynder
23. februar 2005 - 11:34 #8
Et lille tillægsspørgsmål. Hvordan skriver jeg det, så det er et baggrundsbillede i en tabel?
Avatar billede mr_bacardi Nybegynder
23. februar 2005 - 11:44 #9
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>
<script type="text/javascript">
var r;
function loadPic() {
var loca="pictures/newest.jpg"; //Hvor billedet ligger
var sec="3"; //Antal sekunder imellem den henter nyt billede
r = Math.random(); //Generer tilfældigt tal
document.getElementById("pict").background=loca+"?"+r; //Ændrer billedet
setTimeout("loadPic()", sec*1000); //Kører funktionen igen efter X (sec) antal sekunder.
}
</script>

</head>

<body onLoad="loadPic();">
<table ID="pict">indhold</table>

</body>
</html>

Sådan der :)
Avatar billede donslund Nybegynder
23. februar 2005 - 12:05 #10
Hmmm. Det lader ikke rigtig til at ville virke.

Koden som jeg har rettet den til:

<script type="text/javascript">
var r;
function loadPic() {
var loca="webcam.jpg"; //Hvor billedet ligger
var sec="3"; //Antal sekunder imellem den henter nyt billede
r = Math.random(); //Generer tilfældigt tal
document.getElementById("pict").src=loca+"?"+r; //Ændrer billedet
setTimeout("loadPic()", sec*1000); //Kører funktionen igen efter X (sec) antal sekunder.
}
</script>

<BODY BGCOLOR="#1A3654" onLoad="loadPic();">

<TD ID="pict">
Avatar billede mr_bacardi Nybegynder
23. februar 2005 - 12:29 #11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>
</head>
<script type="text/javascript">
var r;
function loadPic() {
var loca="webcam.jpg"; //Hvor billedet ligger
var sec="3"; //Antal sekunder imellem den henter nyt billede
r = Math.random(); //Generer tilfældigt tal
document.getElementById("pict").background=loca+"?"+r; //Ændrer billedet
setTimeout("loadPic()", sec*1000); //Kører funktionen igen efter X (sec) antal sekunder.
}
</script>

<BODY BGCOLOR="#1A3654" onLoad="loadPic();">
<table>
<TD ID="pict"></td>
</table>
</body>
</html>

Det skyldes at der ikke længere benyttes src, men background, til at ændre det.
Husk altid at bruge table før td, ellers overholdes W3C standardsne ikke, og så virker det ikke i fx FireFox (Kan godt være du har den med i hele din kode, men bare havde udeladt den i det du skrev her)
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