Ho una webcam che mi invia le immagini ogni 2 secondi su una cartella in FTP.
Le immagini le salva con nome simile a questo : "00B80000319A(002bdpf)_0_20110604041340_27417.jpg"
Quindi la nuova immagine avrà data e ora diversa e anche l'ultimo numero sequenziale diverso.
Ora io tramite script in php riesco a catturare l'ultima immagine inserita, a cancellare le altre e a visualizzare l'immagine.
Tutto questo è contenuto in un iframe perchè tale script essendo in php dovrà fare il refresh della pagina.
Ora, il problema è che con il refresh il contenuto dell'iframe svanisce per ricomparire un po per volta causando un effetto bruttissimo .
Detto questo mi chiedevo se esistesse un modo in JS per evitare tutto ciò.
Pensavo a un preload dell'intero frame, solamente che tutti i preload visti fino ad ora hanno un'immagine o comuque una barra di caricamento che coprirebbe il vecchio snapshot della webcam e questo vorrei evitarlo. Quindi riassumento vorrei fare in modo che :
1)Visualizzo tramite php l'immagine dello snapshot n°1
2)Faccio il preload dell'iframe contenente il codice php (evitando che li snapshot n°1 sparisca)
3)Una volta caricato l'intero passaggio 2 venga visualizzato lo snapshot n°2
vi posto il codice che ho ora in php se vi può essere utile:
Codice:
<script language="JavaScript">
function doRefresh() {
// refresh della pagina corrente
document.location.reload();
}
// imposto il timeout per il prossimo refresh
// espresso in millisecondi (1000 = 1 secondo)
window.setTimeout("doRefresh();", 2000);
</script>
<script language="JavaScript">
<!--
data = new Date();
ora =data.getHours();
minuti=data.getMinutes();
secondi=data.getSeconds();
giorno = data.getDay();
mese = data.getMonth();
date= data.getDate();
year= data.getYear();
if(minuti< 10)minuti="0"+minuti;
if(secondi< 10)secondi="0"+secondi;
if(year<1900)year=year+1900;
if(ora<10)ora="0"+ora;
if(giorno == 0) giorno = " Domenica ";
if(giorno == 1) giorno = " Lunedì ";
if(giorno == 2) giorno = " Martedì ";
if(giorno == 3) giorno = " Mercoledì ";
if(giorno == 4) giorno = " Giovedì ";
if(giorno == 5) giorno = " Venerdì ";
if(giorno == 6) giorno = " Sabato ";
if(mese == 0) mese = "Gennaio ";
if(mese ==1) mese = "Febbraio ";
if(mese ==2) mese = "Marzo ";
if(mese ==3) mese = "Aprile ";
if(mese ==4) mese = "Maggio ";
if(mese ==5) mese = "Giugno ";
if(mese ==6) mese = "Luglio ";
if(mese ==7) mese = "Agosto ";
if(mese ==8) mese = "Settembre ";
if(mese ==9) mese = "Ottobre ";
if(mese ==10) mese = "Novembre ";
if(mese ==11) mese = "Dicembre";
document.write(giorno+" "+date+" "+mese+" "+year+" - "+ora+":"+minuti+":"+secondi);
//-->
</script><br/>
<?php
$dir= '../snap1/';
$imgs = array();
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (!is_dir($file) && preg_match("/\.(bmp|jpe?g|gif|png)$/", $file)) {
array_push($imgs, $file);
}
}
closedir($dh);
} else {
die('cannot open ' . $dir);
}
$ind='http://localhost/snap1/';
foreach ($imgs as $idx=>$img) {
$class = ($idx == count($imgs) - 1 ? '<img src="' . $ind . $img . '" alt="' . $img . '" />' : '<div style="display:none;">'.unlink($dir.$img).'</div>');
echo $class;
}
?>
function doRefresh() {
// refresh della pagina corrente
document.location.reload();
}
// imposto il timeout per il prossimo refresh
// espresso in millisecondi (1000 = 1 secondo)
window.setTimeout("doRefresh();", 2000);
</script>
<script language="JavaScript">
<!--
data = new Date();
ora =data.getHours();
minuti=data.getMinutes();
secondi=data.getSeconds();
giorno = data.getDay();
mese = data.getMonth();
date= data.getDate();
year= data.getYear();
if(minuti< 10)minuti="0"+minuti;
if(secondi< 10)secondi="0"+secondi;
if(year<1900)year=year+1900;
if(ora<10)ora="0"+ora;
if(giorno == 0) giorno = " Domenica ";
if(giorno == 1) giorno = " Lunedì ";
if(giorno == 2) giorno = " Martedì ";
if(giorno == 3) giorno = " Mercoledì ";
if(giorno == 4) giorno = " Giovedì ";
if(giorno == 5) giorno = " Venerdì ";
if(giorno == 6) giorno = " Sabato ";
if(mese == 0) mese = "Gennaio ";
if(mese ==1) mese = "Febbraio ";
if(mese ==2) mese = "Marzo ";
if(mese ==3) mese = "Aprile ";
if(mese ==4) mese = "Maggio ";
if(mese ==5) mese = "Giugno ";
if(mese ==6) mese = "Luglio ";
if(mese ==7) mese = "Agosto ";
if(mese ==8) mese = "Settembre ";
if(mese ==9) mese = "Ottobre ";
if(mese ==10) mese = "Novembre ";
if(mese ==11) mese = "Dicembre";
document.write(giorno+" "+date+" "+mese+" "+year+" - "+ora+":"+minuti+":"+secondi);
//-->
</script><br/>
<?php
$dir= '../snap1/';
$imgs = array();
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (!is_dir($file) && preg_match("/\.(bmp|jpe?g|gif|png)$/", $file)) {
array_push($imgs, $file);
}
}
closedir($dh);
} else {
die('cannot open ' . $dir);
}
$ind='http://localhost/snap1/';
foreach ($imgs as $idx=>$img) {
$class = ($idx == count($imgs) - 1 ? '<img src="' . $ind . $img . '" alt="' . $img . '" />' : '<div style="display:none;">'.unlink($dir.$img).'</div>');
echo $class;
}
?>






