# Bilder der Webcam überblenden



## strandjunge (25. November 2002)

hallo,

mit hilfe von geist habe ich einen kleinen javascript ans laufen bekomme der auf unserer webcam hp unser webcambild aktualisiert.

http://www.costabrava-online.com/webcam.htm

meine frage ist folgende:

besteht die moeglichkeit das darauf folgende bild einzublenden ohne das es sicher wieder neu aufbaut... also man nur die aenderungen im bild sieht?

gruss aus spanien

strandjunge


----------



## THE REAL TOOLKIT (25. November 2002)

Hmn,naja villeicht wenn das Bild in einem Iframe ist,sonst wohl nicht.
Villeicht gehts ja mit Flash.


----------



## Fabian H (25. November 2002)

Mit den Microsoft Filtern (siehe SelfHTML).
Dann darfst du allerdings nicht mehr die ganze Seite neu laden, sondern nur das Bild.

]Ton[


----------



## Adam Wille (2. Dezember 2002)

So, kommt vielleicht etwas verspätet, aber dennoch:

Also mit einem einfachen Preloading-Vorgang (cachen, was sonst) ist das unter Zuhilfenahme des _onLoad_-Handlers mit Garantie hinzubekommen - ist das Script noch immer das gleiche aus dem anderen Posting oder wie sieht es mittlerweile aus?

Würde mich dann mal dranmachen, dir das zu scripten.

Geist


----------



## strandjunge (2. Dezember 2002)

Hallo Geist,

das waere echt super weil ich immer noch keine vernuenftige loesung habe. ja das script immer noch das gleiche. 

siehe:

http://www.costabrava-online.com/webcam.htm

<SCRIPT LANGUAGE="Javascript"><!-- 
 function reloadCam() 
  {reload = new Date(); 
   reload = "?"+reload.getTime() 
    document.images["webcambild"].src = "http://mitglied.lycos.de/costabravaonline/M1/m1test.jpg"+reload 
     setTimeout("reloadCam()", 30000) // zeit-in-ms  
} 
//--></SCRIPT> 

</HEAD> 
<BODY BGCOLOR="#FFFFFF"> 
<center><IMG NAME="webcambild" SRC="http://mitglied.lycos.de/costabravaonline/M1/m1test.jpg" BORDER=0></center> 
<SCRIPT LANGUAGE="Javascript"> 
<!-- 
reloadCam(); 
//--></SCRIPT> 

gruss

strandjunge


----------



## Adam Wille (2. Dezember 2002)

Mh, ich hab's jetzt nicht getestet sondern hier nur ausgesponnen, aber schau mal ob's vielleicht so hier läuft. 

```
<script type="text/javascript" language="JavaScript">
<!--
var bildcache, reload;

function ersetzen() {
	document.images["webcambild"].src = "http://mitglied.lycos.de/costabravaonline/M1/m1test.jpg" + reload;
	setTimeout("ladeCam()", 30000);
}
 
function ladeCam() {
	if (bildcache == null) {
		bildcache = new Image();
	}
	reload = new Date(); 
	reload = "?" + reload.getTime();
	bildcache.src = "http://mitglied.lycos.de/costabravaonline/M1/m1test.jpg" + reload;
	bildcache.onLoad = ersetzen();
} 
//-->
</ script>
```
(</ script natürlich wieder zusammen)

und der Aufruf im <body>-Teil dann per

```
<script type="text/javascript" language="JavaScript"> 
<!-- 
ladeCam(); 
//-->
</ script>
```
(</ script ... )

hth,
Geist


----------



## strandjunge (2. Dezember 2002)

hola,

habe den script natuerlich sofort eingebaut,aber vielleicht was falsch gemacht da es sich jetzt gar nicht aktualisiert?? *gg*

hmm.. waerst du wohl so nett und koenntest noch mal schaun??


http://www.costabrava-online.com/webcam.htm

;-)


----------



## strandjunge (2. Dezember 2002)

aehmm.. sorry oder doch... *gg*

aber braucht immer noch lange zum laden. 

ne idee?


----------



## Adam Wille (2. Dezember 2002)

Folgende Zeile ist etwas fehlerbehaftet:

```
bildcache.onLoad = ersetzen();
```
Mach' daraus mal bitte ein

```
bildcache.onload = ersetzen;
```
dann hat's bei meinem Testlauf auch geklappt. 

hth,
Geist


----------



## Adam Wille (2. Dezember 2002)

Hm, kann's sein dass der Server, auf den die Bilder von der Cam geladen werden, ziemlich schwankt, was die Transfergeschwindigkeit von Daten betrifft?

Vorhin ging's einwandfrei mit dem Laden, jetzt werden in den 30 Sekunden teilweise nur halbe Bilder geladen...!?

Geist


----------



## strandjunge (2. Dezember 2002)

jo habs geaendert und siehe da es laeuft!!!  

vielen dank !

gruesse von der costa brava


----------



## Sniky76 (18. April 2008)

Hallo Ihr Lieben, tolles Thema und tolles Script, so in der art konnte ich das auch gebrauchen 

Nur soll das ganze bei mir eigentlich ein wenig schneller laufen, was ja auch eigentlich geht... ich hatte erst setTimeout("ladeCam()", 500); läuft und bleibt dann leider nach einer weile hängen... die zeit kann man da gar nicht so genau sagen, da es wirklich sehr unterschiedlich ist, wie das script hängen bleibt.

Dann hab ich die Einstellung auf setTimeout("ladeCam()", 2000); gestellt und wieder, läuft eine weile, bleibt da aber irgend wann einfach hängen.

Das hab ich auch noch mit sämtlichen anderen Zeitangaben getestet, leider immer das selbe... das Script bleibt immer nach einer weile hängen... ist auch nicht nur bei mir so, auch bei anderen bleibt es leider hängen. 

Nun hab ich es so gemacht, das ich das Script in einem ifram lade und dann alle paar Sekunden den Ifram neu laden lasse... dann läuft zwar das Script so gut wie fast die ganze Zeit durch, man hat aber leider alle 5 Sekunden wieder den ladeefekt vom Bild und das will man ja eigentlich auch nicht.

Kann mir da vielleicht irgend jemand von euch helfen und mir sagen warum das Script nach einer Weile immer hängen bleibt und ob man da irgend was machen kann um das zu verhindern, dass es ständig hängen bleibt?

Vielen Dank für eure Mühe!

Liebe Grüße,
Sniky


----------



## Sven Mintel (19. April 2008)

Moin,...

um etwaige Fehlerquellen bei dir im, Skript auszuschliessen:könntest du dein Skript bitte einmal posten?

Und die "Weile", wie lang ist diese ungefähr?
Welchen Browser verwendest du...könntest du da bitte mal, wenn es stoppt, im Taskmanager nachgucken, wieviel Speicher der Browser verbraucht?

Wie gross(Dateigrösse nicht Bildabmaße) ist das Bild, welches die Webcam liefert?


----------



## Sniky76 (19. April 2008)

Hallo Sven Mintel,

vielen Dank erstmal für deine Antwort.

im prinzip benutze ich derzeit genau das selbe script was hier im beitrag #6 zu finden ist. hab auch erstmal nichts ausser den link und den intervall der bilder geändert, sonst nichts.

Am Browser kann es ja eigentlich nicht liegen, da ich den IE oder auch Firefox getestet habe und das Problem bei mir bei beiden Browsern auftritt und ei einem Freund und meiner Mutter ja auch. Die bilder haben eine Grüße von:320x240 und sind 4,54 kb groß.

Wenn ich jetzt die Zeit im Script auf 500 Millisekunden stelle, läuft es zwischen 1 und 20 Sekunden durch also 2 bis 40 Bilder sieht man dann schon und stelle ich es auf 1000 Millisekunden, läuft es genauso lange.


Laß ich den IFram aber alle 5 Sekunden einmal aktualisieren, lauft das Script immer und immer weiter durch aber man sieht ja dann wieder wie das Bild läd, was ja eigentlich nicht sein soll und alle 5 Sekunden die Seite über einen MetaRefresh neu zu laden ist ja auch nicht wirklich die eleganteste Lösung 

Viellen Dank!

Viele Grüße,
Sniky


----------



## Sven Mintel (19. April 2008)

Das Skript in Post#6 hat einen Fehler, hast du diesen auch behoben, so wie in Post#9 beschrieben?


----------



## Sniky76 (19. April 2008)

Ja hatte ich, war ja nur dieses onload... Das hatte ich noch geändert... hab ja den Beitrag hier 3 mal gelesen bevor ich gefragt habe... Ich dachte ja es haben auch andere dieses Problem mit dem Script.

Danke.

Viele Grüße,
Sniky


----------



## Sven Mintel (19. April 2008)

Also ich würde mal vermuten, die Software der Webcam ist mit dem Upload der Bilder überfordert

Zum Testen kannst du ja mal dieses Bild probieren: http://doktormolle.de/temp/gdstr/image2.php

Das läuft bei mir sauber durch(hab jetzt allerdings nur 5 min geguckt  )


----------



## Sniky76 (19. April 2008)

Hi Sven Mintel,

vielen Dank nochmal für deine Antwort, jetzt läuft es bei mir auch, hab das nur ein wenig abgeändert und dadurch auch festgestellt, warum es davor nicht lief.

ich hab nur die zeile: bildcache.onload = ersetzen; durch bildcache = ersetzen(); ersetzt und jetzt läuft es schon ewig durch...

Nur hab ich jetzt ein Problem und denke mal, deshalb blieb das Script auch immer hängen.

Und zwar läuft es jetzt und in unterschiedlichen abständen kann immer mal ein Bild nicht geladen werden, warum auch immer... nur ist das natürlich unschön, wenn da alle paar Bilder mal ein rotes X kommt. Ich hab das natürlich in sämtlichen verschiedenen SetTimeout einstellungen getestet... immer das selbe Problem.

Nun meine Frage, könnte man da in das Script noch irgend wie mit einbauen, dass es prüft ob das nächste bild schon verfügbar ist und wenn nicht, das letzte noch eimal angezeigt wird?

EDIT: Was aber auch ok wäre, wäre wenn das Script einfach wenn es das Bild nicht finden könnte die funktion ladeCam(); neustartet... Ist das vielleicht irgend wie Möglich? wäre mir ja fast noch lieber 

Wäre wirklich Super wenn Ihr mir da noch einmal helfen könntet?



Vielen Dank!

Viele Grüße,
Sniky


----------



## Sniky76 (19. April 2008)

Hallo ihr Lieben,

hat da echt keiner eine Idee für mich wie ich das Lösen kann, dass geprüft wird ob das nachste Bild wirklich geladen wurde und wenn nicht das letzte einfach nochmal geladen wird... so das dieses script nicht immer abricht.

Vielen Dank!

Liebe Grüße,
Sniky


----------



## Quaese (20. April 2008)

Hi,

vielleicht hilft es, wenn du im *onerror*-Event des Bildobjektes die Funktion erneut aufrufst.

```
bildcache.onerror = function(){
    ladeCam();
  }
```
Im Übrigen wäre es nett, wenn du das Threadpushing unterlassen würdest.

Ciao
Quaese


----------



## Sniky76 (20. April 2008)

Du bist ja mal absolut spitze... jetzt läuft es schon ewig durch... ich glaube das war es 

Vielen Vielen Dank

Viele Grüße,
Sniky


----------

