Hallo an alle,
Ich habe ein Problem mit sync ajax aufrufen die, bei Bedarf, mit einem Timeout beendet werden müssen.
Das Script das ich da geschrieben habe funktioniert soweit gut und das timeout fasst auch sobald ich async auf true setze. Da der Server den ich abfrage aber nur eine Abfrage gleichzeitig annehmen kann bin ich auf async: false angewiesen.
Gibt es einen work around der es mir erlaubt das auch mit false zu benutzen?
Aufgabenstelleung ist folgende:
In einem XML File sind zwischen 10 und 2000 Artikelanfragen. nachdem das XML File hochgeladen wurde und die Artikel herausgefiltert sind wird eine Tabelle mit allen Artikeln angezeigt.
Nun gibt es verschiedene Warenwirtschaften wo ich diese Artikel jetzt anfragen muss, daher gib es nun z.B 3 spalten mit Warenwirtschaft1 - 3.
Wenn ich nun bei Warenwirtschaft1 auf start drücke, soll er ein php file auf dem selben server aufrufen welches den Artikelchck vornimmt. Der Rückgabewert wird ausgewertet und entsprechend entweder ein grüner oder roter Punkt, oder wenn die Abfrage in ein timeout kommt ein Fragezeichen.
Da die Warenwirtschaft die ich anfragen muss in Amerika ist und der Server nur max 1 anfrage zur gleichen Zeit annimmt, muss ich schon mal sync abfragen. Da aber auch von Zeit zu Zeit ein timeout kommt, hängt sich das script leider immer auf.
Vielleicht gibt es ja wen hier der mir da ein wenig auf die Sprünge helfen könnte. Ich habe so ziemlich alles was ich mir vorstellen konnte schon in Google eingetippt.
Wie schon gesagt das script läuft gut und geht jeweils einen Eintrag nach dem anderen durch, leider funktioniert das timeout bei sync abfrage nicht!
zu guterletzt noch einmal das Script in der bisherigen Form:
hier das Beispiel für die amerikanische Version:

Ich habe ein Problem mit sync ajax aufrufen die, bei Bedarf, mit einem Timeout beendet werden müssen.
Das Script das ich da geschrieben habe funktioniert soweit gut und das timeout fasst auch sobald ich async auf true setze. Da der Server den ich abfrage aber nur eine Abfrage gleichzeitig annehmen kann bin ich auf async: false angewiesen.
Gibt es einen work around der es mir erlaubt das auch mit false zu benutzen?
Aufgabenstelleung ist folgende:
In einem XML File sind zwischen 10 und 2000 Artikelanfragen. nachdem das XML File hochgeladen wurde und die Artikel herausgefiltert sind wird eine Tabelle mit allen Artikeln angezeigt.
Nun gibt es verschiedene Warenwirtschaften wo ich diese Artikel jetzt anfragen muss, daher gib es nun z.B 3 spalten mit Warenwirtschaft1 - 3.
Wenn ich nun bei Warenwirtschaft1 auf start drücke, soll er ein php file auf dem selben server aufrufen welches den Artikelchck vornimmt. Der Rückgabewert wird ausgewertet und entsprechend entweder ein grüner oder roter Punkt, oder wenn die Abfrage in ein timeout kommt ein Fragezeichen.
Da die Warenwirtschaft die ich anfragen muss in Amerika ist und der Server nur max 1 anfrage zur gleichen Zeit annimmt, muss ich schon mal sync abfragen. Da aber auch von Zeit zu Zeit ein timeout kommt, hängt sich das script leider immer auf.
Vielleicht gibt es ja wen hier der mir da ein wenig auf die Sprünge helfen könnte. Ich habe so ziemlich alles was ich mir vorstellen konnte schon in Google eingetippt.
Wie schon gesagt das script läuft gut und geht jeweils einen Eintrag nach dem anderen durch, leider funktioniert das timeout bei sync abfrage nicht!
zu guterletzt noch einmal das Script in der bisherigen Form:
hier das Beispiel für die amerikanische Version:
PHP:
$(function() {
$("#check_nsusa").bind("click", function() {
$("#check_nsusa").attr('src', './images/status.gif');
var fetching = $.when();
$("img.check_nsusa").each(function (i) {
var val = $(this).attr('id');
var valu = $(this).attr('ids');
var responseData;
fetching = fetching.pipe(function (jqXHR, exception, message) {
$.ajax({
url: './check_ns_usa.php?search=' + valu,
timeout: 15000,
async: false,
beforeSend: function(){
$('#'+val).attr('src', './images/status2.gif');
},
success: function(json){
if(json == "9") {
$('#'+val).attr('src', './images/status_bad.png');
}
else if(json == "2") {
$('#'+val).attr('src', './images/status_verygood.png');
}
else if(json == "1") {
$('#'+val).attr('src', './images/status_good.png');
}
else {
$('#'+val).attr('src', './images/status_unknown.png');
}
responseData = json;
},
error: function(jqXHR, exception, message) {
},
complete: function(jqXHR, exception, message) {
if (exception == 'error') {
$('#'+val).attr('src', './images/status_unknown.png');
}
}
})
.done(function ( data ) {
});
});
});
fetching.done(function (jqXHR, exception, message) {
$("#check_nsusa").attr('src', './images/tick.png');
});
});
});

Zuletzt bearbeitet: