timmy: Variablen und window.setTimeout()

Beitrag lesen

Hi,
Ich habe folgendes Problem:
nach einer bestimmten aktion geht ein Pop up mit untenstehendem Javascript Code und einem animierten Gif auf. Das Pop up schliesst sich selber wieder wenn eine Datei nicht mehr existiert. Beim ersten und eventuell 2. Mal funktioniert das gut. Ab dem 2. Mal überspringt er irgendwie den ganzen Code und schliesst sich gleich selbst. er wartet nicht einmal die 3 Sekunden am Anfang. Nachdem man 5-10 min gewartet hat oder manchmal reicht auch, wenn man das Mutterfenster schliesst und wieder neu öffnet funktioniert es wieder (1-2 Mal und dann überspringt er den Code wieder).

An was könnte das liegen oder wo ist der Fehler?
Ich habe auch schon alerts eingebaut zur Kontrolle, aber die überspringt er irgendwie.

**************************************
var xmlhttp = false;
var url = "http://rabmed98/besetzt.txt"
//Script wartet eine Sekunde 1000 ms) und ruft dann die Funktion macheRequest(url) auf.
window.setTimeout(function() { macheRequest(url);}, 3000)

function macheRequest(url)
    {
        {
//Es wird versucht ein neues Object zu erstellen.
            try
            {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
//Wenn das erstellen nicht gin, fängt "catch" die Fehlermeldung ab und versuchts nochmals.
            } catch (e)
             {
                try
                {
                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
//Die Fehlermeldung wird wieder abgefangen
                } catch (e) {}
             }
        }
//Wenn "xmlhttp" nicht vorhaden ist gibt es eine Fehlermeldung
        if (!xmlhttp)
        {
            alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
            return false;
        }
//ruft die Funktion alertInhalt() auf
        xmlhttp.onreadystatechange = alertInhalt;
        xmlhttp.open('HEAD', url, true);
        xmlhttp.send(null);
    }

function alertInhalt()
{
         if (xmlhttp.readyState == 4)
    {
//überprüft, ob die url vorhanden ist(Status 200), bei z.b. nicht vorhanden sein würde es Status 404 geben.
        if (xmlhttp.status != 200)
              {
//check.html schliesst sich selber
    xmlhttp='0';
                  self.close();
              }
                         else
              {
//wenn nicht Status 200 ist startet er die Funktion macheRequest(url) erneut, nachdem er eine Sekunde Pause gemacht hat.
          window.setTimeout(function() { macheRequest(url);}, 1000)
              }
    }
}
********************************************

gruss, timmy

--
UO-Player