Sziasztok!
Tudnátok valami működő megoldást arra, hogy egy ajax-os adatküldés ha nem telesül, pl. a szerver nem válaszol, akkor 1-2 másodperc múlva küldje újra és újra ? (de azért ne a végtelenségig)
Most nekem ilyen kódom van ami nem jó mert a // xmlhttp2.abort(); a kódban nem működik, a console hibát ír (talán azt, hogy nem létező változó), ezért kommenteltem ki, de a másik nagy baj, az hogy a visszajövő adatok feldolgozása csak 1x kellene hogy megtörténjen a "pótküldés" esetén is, de ez jelenleg nem így van és már annyira nyakatekertnek érzem ezt a kódot, hogy inkább elfelejteném ezt.
Kód:
var xmlhttp;
var xmlhttp2;
function adatkuldes(parmit,adat){
if (window.XMLHttpRequest) {xmlhttp=new XMLHttpRequest();}
else {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
potkuldes = "nem";
// xmlhttp2.abort();
document.getElementById("adatvissza").innerHTML=xmlhttp.responseText;
if (parmit.substr(0,2) == "cs") {sajatlapcserem();}
else if (parmit == "me") {sajatchatem('mehet');}
else if (parmit == "passz") {sajatchatem('passz');}
else if (parmit == "kozosbe" || parmit == "megtartom") {gombeltuntet();}
valaszfrissit();
}
}
xmlhttp.open("GET","adatfogad1.php?mit="+parmit+"&d="+adat, true);
xmlhttp.send();
potkuldes = "igen";
setTimeout(function(){potajax(parmit,adat);},2200)
}
// ha nincs szerver válaszfogadás, 2s után meghívja az adatkuldes
function potajax(potmit,potadat) {
if (potkuldes != "nem") {
// xmlhttp.abort();
if (window.XMLHttpRequest) {xmlhttp2=new XMLHttpRequest();}
else {xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp2.onreadystatechange=function() {
if (xmlhttp2.readyState==4 && xmlhttp2.status==200) {
document.getElementById("adatvissza").innerHTML=xmlhttp2.responseText;
if (potmit.substr(0,2) == "cs") {sajatlapcserem();}
else if (potmit == "me") {sajatchatem('mehet');}
else if (potmit == "passz") {sajatchatem('passz');}
else if (potmit == "kozosbe" || potmit == "megtartom") {gombeltuntet();}
valaszfrissit();
}
}
xmlhttp2.open("GET","adatfogad1.php?mit="+potmit+"&d="+potadat, true);
xmlhttp2.send();
}
}
Könyvjelzők