Sascha79: Frage zu AJAX und Opera

Guten Abend,

ich habe eine Frage zu Ajax und speziell zum Browser Opera.

Ich habe eine Funktion geschrieben mit der ich auf einer Seite verschiedene DIV Container, die auch alle unterschiedlich heißen, verändern kann. Das klappt auch alles super gut in allen Browsern.

Nur Opera macht mir zu schaffen. Wenn ich den Request für den ersten container losschicke klappt alles super gut readyState hat den Wert 4 und alles ist super! Sobald ich aber einen der anderen Container mit einem Reuqest verändere, fangen die zuvor ausgewählten Container die bis dahin schon längst zu Ende geladen sind wieder an zu laden.

Was die da laden weiß ich nicht, weil sie nicht aufhören zu laden. Ich bin seit Stunden am suchen aber hab niemanden gefunden, der das gleiche Problem hat. Ich hoffe jemand von euch kann mir helfen.

--
lg sascha
  1. Hi!

    Was die da laden weiß ich nicht

    Ich auch nicht.
    Und wenn du keinen Code postest, wird das auch Niemand testen können...

    Ich hoffe jemand von euch kann mir helfen.

    Verlinke deine Site oder poste deinen Code.

    Schöner Gruß,
    rob

    1. var XMLHTTP = null;

      if(window.XMLHttpRequest)
      {
       XMLHTTP = new XMLHttpRequest();
      }
      else if(window.ActiveXObject)
      {
       try
       {
        XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
       }
       catch(e)
       {
        try
        {
         XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e)
        {
         XMLHTTP = null;
        }
       }
      }

      function alterForumEntry(foid, mode)
      {
       if(mode == 'textarea')
       {
        XMLHTTP.open("GET", "/networks/alterEntry.php?foid="+foid+"&mode=1");
        XMLHTTP.onreadystatechange = function() { sendAlterForumEntry(foid); };
        XMLHTTP.send(null);
       }
       else if(mode == 'update')
       {
        var text = document.getElementById("text"+foid).value;

      if(text.trim() == '')
        {
         return alert('Du hast kein Text angegeben.');
        }

      XMLHTTP.open("POST", "/networks/alterEntry.php?foid="+foid+"&mode=2");
        XMLHTTP.onreadystatechange = function() { sendAlterForumEntry(foid); };
        XMLHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        XMLHTTP.send("text="+encodeURI(text));
       }
       else if(mode == 'cancel')
       {
        XMLHTTP.open("GET", "/networks/alterEntry.php?foid="+foid+"&mode=3");
        XMLHTTP.onreadystatechange = function() { sendAlterForumEntry(foid); };
        XMLHTTP.send(null);
       }
      }

      function sendAlterForumEntry(foid)
      {
       var Container = document.getElementById('alterComment'+foid);

      if(XMLHTTP.readyState < 4)
       {
        Container.innerHTML = '<div style="text-align:center; height:60px; padding-top:20px;"><img src="/images/loading.gif" width="32" height="32" alt="Daten werden geladen..." style="margin-bottom:10px;"><br />Daten werden geladen...</div>';
       }

      if(XMLHTTP.readyState == 4)
       {
        var Container = document.getElementById('alterComment'+foid);
        Container.innerHTML = XMLHTTP.responseText;
       }
      }

      1. Mit dem Code läßt sich das Fehlverhalten nicht erklären. Du sagst es "fangen die zuvor ausgewählten Container [...] wieder an zu laden", heißt das in allen anderen Conatinern wird die Ladegrafik angezeigt?

        Struppi.

        --
        Javascript ist toll (Perl auch!)
  2. Hi,
    ich habe keine Ahnung von AJAX,
    aber soweit ich weiß hat der Opera da Probleme (gehabt).

    G-Mail funktioniert einfach besser im Firefox, da ist ja auch recht viel AJAX am werkeln.

    Schöne Grüße
    Stefan