2016-03-24 9 views
0

Ich stoße auf einige Probleme. Ich möchte ein Livebild über http erfassen und auf meinem Webserver speichern. Mit Javascript aktualisiere ich das gespeicherte Bild jede Sekunde. Aber wenn Javascript aktualisiert wird und das Bild nicht vollständig gespeichert wird, sehe ich nur das halbe Bild (nicht vollständig geladenes Bild).Bild nur jede Sekunde aktualisieren, wenn es vollständig verfügbar ist

Gibt es eine Methode, damit umzugehen? z.B. nur das Bild anzeigen, wenn die Sicherungsaufgabe abgeschlossen ist? wenn das alte "Cached" -Bild nicht angezeigt wird, bis ein neues verfügbar ist.

Meine PHP-Datei, um das Bild von der Quelle zuzugreifen:

$path = realpath(dirname(__FILE__)); 
for ($i = 0; $i < 59; ++$i) { 
    copy('http://<<<IP>>>/livepicture.jpg', $path.'/livepicture.jpg'); 
    sleep(1); 
} 

Meine HTML-Datei das Bild Auffrischen:

<script language="javascript" type="text/javascript" > 
function ChangeMedia(){ 
    var d = new Date(); 
    var t = d.getTime(); 
    document.getElementById('camara').src = "livepicture.jpg?"+t; 
} 
var reloadcam = setInterval("ChangeMedia()",1000); 
</script> 
<img src="livepicture.jpg" alt="Loading..." name="camara" id="camara" /> 
+1

Sie brauchen 'onload' Ereignis des Bildes – llamerr

Antwort

2

Sie müssen den folgenden Code ändern, um die Bilddatei zu kopieren und erst nach dem Herunterladen die vorherige Datei ersetzen.

+0

das ist so einfach - danke! – Mike

+0

nachdem die for-Schleife beendet ist, bekomme ich einen Fehler von 500. weißt du, warum? – Mike

+0

Welcher Code ist nach Ihrer Schleife? – cmorrissey

0

Sie können mit Ajax requet und Onload-Ereignis des Bildes versuchen, und wenn Ihre PHP Antwort gut Aktualisieren Sie die Seite

Verwandte Themen