verschachtelte Ajaxabfragen in Firefox
bosselmann
- javascript
0 Bug0 bosselmann0 JürgenB0 bosselmann0 JürgenB
0 Steel
Sind verschachtelte Ajaxabfragen (mit zwei verschieden XMLHTTP-Objekten) möglich, wie in meinem Quelltext? Safari schluckts, Firefox (ohne Fehlermeldung) und IE 7 nicht...
function handleResponse4 () {
if (naechste.readyState == 4) {
var data = naechste.responseText;
kid = testajax();
kid.open('get', 'http://co2-filter.com/de/alpha/skripte/kleinsteid.php?id='+link+'', false);
kid.onreadystatechange = function () {
var data2 = kid.responseText;
if (kid.readyState == 4) {
kleinid = data2;
alert(kleinid);
}
}
kid.send(null);
groesteid();
//alert(grosid);
alert(kleinid);
if (document.artikelplusform.selektor.value == kleinid || data == "") {
document.pfeilrechts.src="http://graphic.co2-filter.com/seite/transparent.gif";
}
else {
document.pfeilrechts.src="http://graphic.co2-filter.com/seite/pfeil_rechts_klein.png";
document.artikelplusform.selektor.value = data;
neuertext(data);
}
if (document.artikelplusform.selektor.value == grosid) {
document.pfeillinks.src = "http//graphic.co2-filter.com/seite/transparent.gif";
}
else {
document.pfeillinks.src = "http://graphic.co2-filter.com/seite/pfeil_links_klein.png";
}
}
}
Danke für die Hilfe.
Hallo,
bevor ich versuche, deinen Quelltext zu verstehen (bin kein Javascript- Interpreter) erstmal eine Verständnisfrage:
Was meinest du mit "verschachtelt"?
Du schickst eine Ajax- Abfrage los, aber dann fällt dir ein, dass sie noch zu erweitern / zu ändern ist und schachtelst noch einen Zusatz hinein?
Oder meinst du zwei voneinander unabhängige Requests, die sich ggf. zeitlich überschneiden?
Fragt Bug
Hi,
Ich schicke zwei unabhängige requests:
function testajax () {
var testobjekt = null;
try {
testobjekt = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(Error) {
try {
testobjekt = new ActiveXObject("MSXML2.XMLHTTP");
}
catch(Error) {
try {
testobjekt = new XMLHttpRequest();
}
catch(Error) {
alert("Objekterzeugung fehlgeschlagen");
}
}
}
return testobjekt;
}
Und dann weiter:
function naechsteajax (vorherigeid) {
naechste = testajax();
naechste.open('get', 'http://co2-filter.com/de/alpha/skripte/pfeilid.php?id='+link+'&vid='+vorherigeid+'', true);
naechste.onreadystatechange = handleResponse4;
naechste.send(null);
}
function handleResponse4 () {
if (naechste.readyState == 4) {
var data = naechste.responseText;
kid = testajax();
kid.open('get', 'http://co2-filter.com/de/alpha/skripte/kleinsteid.php?id='+link+'', false);
kid.onreadystatechange = function () {
var data2 = kid.responseText;
if (kid.readyState == 4) {
kleinid = data2;
alert(kleinid);
}
}
kid.send(null);
groesteid();
//alert(grosid);
alert(kleinid);
if (document.artikelplusform.selektor.value == kleinid || data == "") {
document.pfeilrechts.src="http://graphic.co2-filter.com/seite/transparent.gif";
}
else {
document.pfeilrechts.src="http://graphic.co2-filter.com/seite/pfeil_rechts_klein.png";
document.artikelplusform.selektor.value = data;
neuertext(data);
}
if (document.artikelplusform.selektor.value == grosid) {
document.pfeillinks.src = "http//graphic.co2-filter.com/seite/transparent.gif";
}
else {
document.pfeillinks.src = "http://graphic.co2-filter.com/seite/pfeil_links_klein.png";
}
}
}
Es muss zweimal nachgeladen werden, da nach Klicken php-Skripte aufgerufen werden sollen.
Danke
Hallo bosselmann,
naechste = testajax();
naechste.open('get', 'http://co2-filter.com/de/alpha/skripte/pfeilid.php?id='+link+'&vid='+vorherigeid+'', true);
kid.open('get', 'http://co2-filter.com/de/alpha/skripte/kleinsteid.php?id='+link+'', false);
ist das so gewünscht, das der Request einmal synchron und einmal asynchron läuft?
Gruß, Jürgen
Hi,
ist das so gewünscht, das der Request einmal synchron und einmal asynchron läuft?
Ja!
Danke aber schonmal
Hallo bosselmann,
ist das so gewünscht, das der Request einmal synchron und einmal asynchron läuft?
Ja!
so weit ich weiß, läuft bei synchronem Request die Callback-Funktion nicht. Auf jeden Fall wird sie nicht benötigt.
Gruß, Jürgen
Hi!
Sind verschachtelte Ajaxabfragen (mit zwei verschieden XMLHTTP-Objekten) möglich, wie in meinem Quelltext? Safari schluckts, Firefox (ohne Fehlermeldung) und IE 7 nicht...
Es waere hier sinnvoll nicht deinen Eventhandler sondern deine XMLHTTP-Objekte zu posten, wenn diese Dein Prolem sind.
Gibt es eigentlich einen Grund, warum du dir vom Server nicht gleich das Gewuenschte uebermitteln laesst?