Sascha Fitzner: prüfen ob bilder laden erfolgreich, oder bild nicht vorhanden.

halli hallo liebe forumsgemeinde!

ich habe folgendes problem. ich habe auf meiner seite viele bilder die nicht innerhalb meines webspace liegen. dementsprechend oft kommt es vor das die bilder einfach gelöscht werden oder die domain nicht mehr vorhanden ist. das wirkst sich bei mir dann so aus das halt dieser "grafiknichtgeladen" platzhalter aus dem browser angezeigt wird. ich würde das gern ein bischen umbasteln und zwar wie folgt.
laden des bild über javascript. anschliessend prüfung ob das bild geladen wurde. wenn ja dann anzeige des bildes ansonsten anzeige eines "grafiknichtgeladen" bild das dann aber aus meiner eigenen feder stammen soll und nicht das unschöne das der browser anzeigt.

das problem ist ich weiss nicht wie lange ich warten muss bis das bild geladen ist. habe momentan einen schleifenzähler drin den ich mitlaufen lassen und dann nach 10000 durchläufen aussteige. das ist aber nicht der weisheit letzter schluss, da es sein kann das das bild länger wie 10000 durchläufe zum laden benötigt je nachdem wie quicky der server ist bzw. wie gross das bild ist.

ich hoffe das mir von euch jemand unter dir arme greifen kann.

danke schonmal

sascha

bin momentan soweit:

<html><head><title>Test</title>
<script language="JavaScript">
function BildCheck()
{
 var checkImages = new Array;
 var ende = 0;
 var zaehler=0;

checkImages[0] = new Image();
 checkImages[0].src = "http://www.planet-gaga.de/bilder/Elfe2.jpg";
 ende=0;
 while (ende < 1)
 {
 if(checkImages[0].complete)
 {
   ende=1;
 }
 else
 {
   zaehler++;
   if (zaehler>10000)
   {
       ende=1;
   }
   else
   {
       ende=0;
   }
 }
 }
 if (zaehler>10000)
 {
     document.writeln(checkImages[0].src + " konnte nicht geladen werden");
 }
 else
 {
     document.writeln(checkImages[0].src + " wurde geladen");
     document.writeln("<img src=""+checkImages[0].src + "">");
 }
}
</script>
</head><body>
<a href="javascript:BildCheck()">Grafik auf Verfuegbarkeit checken</a>
</body></html>

  1. Hi,

    ich habe auf meiner seite viele bilder die nicht innerhalb
    meines webspace liegen.

    Warum? Sinnvoll finde ich das nicht ...

    dementsprechend oft kommt es vor das die bilder einfach gelöscht
    werden

    Von wem? Wessen Bilder benutzt Du denn da?

    das wirkst sich bei mir dann so aus das halt dieser
    "grafiknichtgeladen" platzhalter aus dem browser angezeigt wird.

    Yep. Was soll er auch anderes machen, wenn Du ihn belogen hast? ;-)

    laden des bild über javascript. anschliessend prüfung ob das bild
    geladen wurde. wenn ja dann anzeige des bildes ansonsten anzeige
    eines "grafiknichtgeladen" bild das dann aber aus meiner eigenen
    feder stammen soll und nicht das unschöne das der browser anzeigt.

    Und was tun, wenn der Benutzer JavaScript nicht eingeschaltet hat?

    ich hoffe das mir von euch jemand unter dir arme greifen kann.

    Im Moment zweifele ich noch die Lauterkeit Deiner Absichten an.

    Aber rein technisch betrachtet würde ich eine serverseitige Lösung Deines "Problems" vorschlagen - falls die naheliegende Lösung, nämlich die Bilder einfach in Deinen eigenen Webspace zu übernehmen, aus mir bisher unverständlichen Gründen ausscheiden sollte.

    Viele Grüße
          Michael

    1. Hi Michael,

      ich gebe dir recht das es bei einem normalen webauftritt nicht sinnvoll ist die bilder wo anders liegen zu haben. schon alleine aus unterschiedlichen responsezeiten macht es nicht unbedingt grossen sinn. ich habe allerdings eine community in der sich jeder bewohner ein eigenes bild in seine hütte hängen kann und dieses kommt in den meisten fällen von der hp bzw. aus dem webspace des bewohners. ändert der nun seine hp oder kickt das bild weg, dann ist es natürlich auch bei mir nicht mehr vorhanden und es erscheint das brokenlink image.

      ich hoffe somit erstmal den umstand und die notwendigkeit erläutert zu haben und mich damit ein bischen als "bilddieb" entlastet zu haben.

      Und was tun, wenn der Benutzer JavaScript nicht eingeschaltet hat?

      dann geht bei mir auf der community sowieso nicht mehr alzuviel! javascript ist bei mir schon notwendig damit alles einigermassen funktioniert.

      Aber rein technisch betrachtet würde ich eine serverseitige Lösung Deines "Problems" vorschlagen - falls die naheliegende Lösung, nämlich die Bilder einfach in Deinen eigenen Webspace zu übernehmen, aus mir bisher unverständlichen Gründen ausscheiden sollte.

      Die Gründe kann ich Dir erklären. Ich habe bei Strato ein Paket in dem es nicht möglich ist eigene CGI's laufen zu lassen, deswegen kann ich leider kein Tool ermöglichen mit deren Hilfe sich der Communityteilnehmer die Bilder in meinen Webspace laden kann, deswegen der "dumme" missstand das die Bilder im Webspace des Bewohner liegen und nur via URL eingebunden werden.

      Viele Grüße
            Michael

      Viele Grüße an Dich zurück, ich hoffe du kannst mir nun ruhigen Gewissens helfen!

      1. Hi,

        Ich habe bei Strato ein Paket in dem es nicht
        möglich ist eigene CGI's laufen zu lassen, deswegen
        kann ich leider kein Tool ermöglichen mit deren Hilfe
        sich der Communityteilnehmer die Bilder in meinen
        Webspace laden kann, deswegen der "dumme" missstand
        das die Bilder im Webspace des Bewohner liegen und
        nur via URL eingebunden werden.

        aber genau diese Art von serverseitiger Intelligenz bräuchtest Du auch, um das Fehlen des Bildes zu bemerken und statt dessen Dein eigenes Fehlerbild einzusetzen.

        Und dieselbe serverseitige Intelligenz hätte ich Dir empfohlen, um beispielsweise via cron periodisch einen links checker über Deine Community-Seiten laufen zu lassen, welcher Dir alle broken links (nicht nur Bilder) automatisch melden würde.

        Für selbstheilende intelligente Prozeduren ist Dein Webspace offenbar untermotorisiert.

        Viele Grüße
              Michael

        1. hi Michael,

          aber genau diese Art von serverseitiger Intelligenz bräuchtest Du auch, um das Fehlen des Bildes zu bemerken und statt dessen Dein eigenes Fehlerbild einzusetzen.

          hab was anderes gefunden, es gibt doch den onError. den habe ich jetzt im img-tag eingebunden und beschicke dann durch javascript den .src mit einem kleinen eigenen fehlerbildchen.

          läuft problemlos.

          gruss sascha fitzner