JCB: Prüfen, ob XML-Daten geladen

Hallo!

Mit <xml src="" id="xml" async="false"></xml> binde ich einen Webdienst ein. Die URL baue ich mit JS zusammen. Übergeben werden einige Parameter welche dann vom Webdienst in eine XML-Datei geschrieben werden. Funzt auch wunderbar. Ich will aber auch die meldungen abfragen können, die der dienst zurückmeldet. mein problem ist jetzt: wie kann ich prüfen, ob der dienst schon fertig ist bzw. schon daten/meldungen zurückgeschickt hat? ich könnte natürlich in ner schleife oder im intervall den status immer abfragen, aber das gefällt mir nicht so recht ;). vielleicht weiß ja jemand ne bessere lösung :).

Gruß, Jan

  1. Hallo,

    ich könnte natürlich in ner schleife oder im intervall den status immer abfragen, aber das gefällt mir nicht so recht ;).

    Auf etwas in dieser Art wird es wohl hinauslaufen. Pruefe die readyState-Eigenschaft des XML-Objektes auf die Werte loading, loaded, interactive, complete.

    Es gibt fuer die XML-Dateninseln den Event-Handler onreadystatechange. Probiere mal diesen Testcode:

    ...
    <body>
    <p id="ausgabe">Status: </p>
    <xml src="abc.xml" id="xml" async="false" onreadystatechange="Info()"></xml>
    </body>
    ...

    JS-Funktion:

    function Info()
    {
      var xmlobj,status,ausgabe;
      ausgabe=document.getElementById("ausgabe");
      xmlobj=document.getElementById("xml");
      status=xmlobj.readyState;
      ausgabe.firstChild.nodeValue+=status+" | ";
    }

    Ergebnis:
    Status: loading | loaded | interactive | complete |

    MfG, Thomas