Hi,
ich spiele gerade mit AJAX rum und frage mich, ob ich für jede Anfrage, die ich an einen Server mittels der send-Methode stelle, ein neues XmlHttpRequest erzeugen sollte.
oder kann ich mir einmal das objekt erzeugen, einmal das onreadystate event zuweisen und wenn ich was brauche, einfach nur die send methode aufrufen??
Ich dachte mir nur, dass es vielleicht Probleme geben könnte wegen der Asynchronität..., dass vielleicht die StateChanges nicht mehr richtig den Sends zugeordnet werden können.
Dachte mir das halt so:
Habe eine "Klasse" AJAX:
var ajax = new AJAX();
darin dann das XMLHttpRequest objekt instanzieren.
und ihm den onreadystatechange event zuweisen.
function AJAX()
{
var xmlhttp = .....
xmlhttp.onreadystatechange = function()
{
.....
if(xmlhttp.status == 200)
{
if(this.onsucceed)
{
this.onsucceed(xmlhttp.responseText);
}
}
}
}
dann, wenn ich es brauche:
ajax.onsucceed = machejenes;
ajax.send("id=1");
ajax.onsucceed = machediesunddas;
ajax.send("id=2");
function machediesunddas(response)
{
alert(response);
}
Ich möchte dann halt wirklich, dass nach der Antwort vom ersten send auch machjenes aufgerufen wird, und für das zweite send machediesunddas.
Stelle mir halt vor, dass ich eine Anfrage schicke, in der Zeit wird die onsucceed methode auf einen anderen wert gesetzt und schon landet die response in der falschen methode.
Gehts besser? Also vermutlich für jede Anfrage ein Objekt?
Gruß
Christian