XML feldolgozás
Sziasztok!
Több XML fájlt használok. Mikor elérek egy feltételhez, betöltök egy másik XML-t, majd ennek az elemeire hivatkozva mennék tovább.
Na most nem mükszik rendesen, mert hiába olvastam be az XML-t egy változóba, mikor hivatkozom rá, még a korábbi XML-hez tartozó értéket adja.
Mintha valami fázis csúszás lenne, mert ha XML beolvasás után rakok egy Alert-t, akkor rendben az újonnan beolvasott XML-ben szereplő értéket adja. Próbáltam Pause funkcióval, de úgy sem OK.
Az XML beolvasást ebben ilyen formában csinálom
function loadXML(local)
{
xmlhttp=null;
url=local".xml";
// code for Mozilla, etc.
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
// code for IE
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=onResponse;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
Az onResponse()-ban hozom létre a beolvasott XML-nek a változót.
Mi okozhatja ezt a "késést" illetve, hogyan lehetne megoldani, hogy rendben megkapja az új beolvasott XML-t.
■ Több XML fájlt használok. Mikor elérek egy feltételhez, betöltök egy másik XML-t, majd ennek az elemeire hivatkozva mennék tovább.
Na most nem mükszik rendesen, mert hiába olvastam be az XML-t egy változóba, mikor hivatkozom rá, még a korábbi XML-hez tartozó értéket adja.
Mintha valami fázis csúszás lenne, mert ha XML beolvasás után rakok egy Alert-t, akkor rendben az újonnan beolvasott XML-ben szereplő értéket adja. Próbáltam Pause funkcióval, de úgy sem OK.
Az XML beolvasást ebben ilyen formában csinálom
function loadXML(local)
{
xmlhttp=null;
url=local".xml";
// code for Mozilla, etc.
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
// code for IE
else if (window.ActiveXObject)
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=onResponse;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
Az onResponse()-ban hozom létre a beolvasott XML-nek a változót.
Mi okozhatja ezt a "késést" illetve, hogyan lehetne megoldani, hogy rendben megkapja az új beolvasott XML-t.
AJAX
Ez milyen esemény? Mondjuk az
Mondjuk az onResponse()-ban használom az:
if(checkReadyState(xmlhttp))
{
xmlDoc = xmlhttp.responseXML.documentElement;
....}
feltételt, ahol a checkReadyState-ben vizsgálom az állapotot:
function checkReadyState(obj)
{
if(obj.readyState == 4)
{
return true;
if(obj.status == 200)
{ return true; }
else { alert("Problem retrieving XML data");
return false; } }
return false;
}
Akkor ezek szerint ilyen módon a checkReadyState()-el tudom (kell) vizsgálnom, vagy van talán más megoldás?
Köszi az eddigi segítséget is. Haza értem ki is kell próbálnom :-))