Michi: nach Umstieg auf Firefox 3: Status 0 bei AJAX-Request

Hallo,

seit dem Umstieg auf Firefox 3 macht eine best. AJAX-Stelle in einem Portal Probleme:

___________________________________________________________________

function meldesystem ( )
      {

http_request2 = false;

if (window.XMLHttpRequest)
           { // Mozilla, Safari,...

http_request2 = new XMLHttpRequest();

if ( http_request2.overrideMimeType )
                  {
                     http_request2.overrideMimeType('text/html');
                  }
             }
             else if (window.ActiveXObject)
                { // IE
                   try
                   {
                      http_request2 = new ActiveXObject("Msxml2.XMLHTTP");
                  }
                  catch (e)
                  {
                      try
                      {
                          http_request2 = new ActiveXObject("Microsoft.XMLHTTP");
                      }
                      catch (e)
                      {
                       beschaeftigt = false;
                       return false;
                      }
                   }
                }

if ( ! http_request2)
             {
                 //alert('Cannot create XMLHTTP instance');
                 beschaeftigt = false;
                 return false;
             }

else

try
             {

http_request2.onreadystatechange = meldesystem_meldungen_ausgeben;

url_schauen = './meldesystem/meldesystem.php';

http_request2.open('GET', url_schauen, true);
               http_request2.send(null);

}
             catch (e)
             {
             }

}

function meldesystem_meldungen_ausgeben ( )
        {

try
             {

if (http_request2.readyState == 4)
                {

if (http_request2.status == 200)
                     {

antwort2 = http_request2.responseText;

if ( antwort2.length > 0 )
                         {
                            alert ( antwort2 );
                         }

}
                     else
                     {

alert ( 'Problem bei GET-Anfrage 2! Status: ' + http_request2.status );

}

}

}
           catch (e)
           {
              return false;
           }

}
___________________________________________________________________

Die Alert-Box in meldesystem_meldungen_ausgeben ( ) gibt plötzlich öfter mal den Status 0 aus, der ja eigentlich nicht definiert ist. In Firefox 2 kam das nicht vor.

Habe dazu folgenden Beitrag gefunden (sonst noch nichts):

http://groups.google.de/group/mozilla.dev.tech.xul/msg/a3221bf29f5f9c39

Klingt nach ähnlicher Problematik, aber wild herumprobieren will ich da auch nicht, vielleicht weiß hier ja jemand Näheres zum Unterschied zwischen Firefox 2 und 3, was den Status von AJAX-Requests betrifft, was es mit mozBackgroundRequest auf sich hat, etc.

Gruß Michi

Firefox 3 AJAX Status 0 XMLHttpRequest

  1. Klingt für mich ganz nach einem Timing-Problem: der readyState ist schon gesetzt, der Status jedoch noch nicht. Kannst Du mal einen Timeout vor die Auswertung vom Status packen?

    Gruß, LX

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. Klingt für mich ganz nach einem Timing-Problem: der readyState ist schon gesetzt, der Status jedoch noch nicht. Kannst Du mal einen Timeout vor die Auswertung vom Status packen?

      Bei einer Verzögerung über einen vorgeschalteten Funktions-Aufruf um 2 Sekunden funktioniert es zwar schon um Einiges besser, aber manchmal tritt dieser Fehler dennoch noch auf. Komisch dabei, dass es diesen Fehler im Firefox 2 eben überhaupt nicht gab und jetzt mit Version 3 geht es los...
      Kann es sein, dass der Firefox 3 so viel schneller geworden ist? ;-)

      1. Kann es sein, dass der Firefox 3 so viel schneller geworden ist? ;-)

        Der FF3 erziehlt bei den Benchmarks zwar tatsächlich mehr Punkte als sein Vorgänger, aber ein so extremes Verhalten ist mir noch nicht untergekommen. Wie lange dauert denn der von Dir verwendete Timeout?

        Gruß, LX

        --
        X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: Unusual
        X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo Michi

        Kann es sein, dass der Firefox 3 so viel schneller geworden ist? ;-)

        Scheint so.

        var Start1 = new Date();  
        for (var i = 0; i < Liste.length; i++) {  
         Liste2[i] = Liste[i];  
        }  
        var Ende1 = new Date();  
        alert(Ende1-Start1);  
        
        

        Ergibt auf meinem Rechner bei 100000 Elementen:

        • mit MozillaControl177: 297
        • mit FF 2.0.0.4: 1453
        • mit FF 3.0.1: 34

        Auf Wiederlesen
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!
  2. function meldesystem ( )
          {

    http_request2 = false;

    Ich weiß ja nicht wann du die Funktion aufrufst, aber hier mit globalen Variabeln zu arbeiten ist gefährlich, wenn du bereits vorher ein http_request2 Objekt erstellt hast, ist das von dir beobachtete Verhalten möglich.

    Du solltest vielleicht das ganze sauberer programmieren.

    Struppi.