Salve a tutti, vi illustro il mio problema :
Ho una telecamera IP che mi invia ogni 2 secondi il suo snapshot al server FTP .
Il problema è che non sovrascrive l'immagine, ma le salva con nomi sequenziali..
Ora ho creato uno script in php che mi legge qual'è l'ultima immagine inviata, elimina le altre e la visualizza. Ogni 2 secondi con javascript aggiorno la pagina in modo che ripete il procedimento in php.
Il problema è che naturalmente l'immagine viene caricata a spezzoni e non tutta insieme facendo un effetto bruttissimo.Per non far ricaricare l'intera pagina ma solo l'immagine ho inserito il procedimento in un iframe. Il codice dell'iframe che viene visualizzato attualmente è il seguente :
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>
<?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]' . $ind . $img . '[/img]' : '<div style="display:none;">'.unlink($dir.$img).'</div>');
echo $class;
}
?>
Ora mi chiedo :
1)C'è un modo per far visualizzare l'immagine con javascript soltanto quando è stata caricata completamente in cache ?? Ho visto il preload ma non ne ho capito un granchè, magari con uno scriptino capirei meglio
2)E' possibile con javascript creare lo stesso procedimento fatto in php ?? (Capire quale file è stato inserito per ultimo in quella cartella, cancellare gli altri file, visualizzare l'ultima immagine con il preload )
PS. Se avete altri suggerimenti per risolvere la situazione sono ben accetti..
PPS. Se volete in privato vi invio il link del sito in questione almeno vi rendete meglio conto.
Graziee