|
|||
Viele Ajax request - async:false - mit timeout realisieren
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: Code:
$(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'); }); }); }); Geändert von It Format (11.06.2013 um 12:20 Uhr) |
Sponsored Links |
|
|||
Zitat:
Du kannst doch aber auch asynchrone nacheinander starten. Was spricht dagegen? |
|
|||
Zitat:
Bin eingefleischter PHP Programmierer |
|
|||
Hi Leute...
für den Fall das noch jemand eine Lösung dazu sucht... Hier wurde reichlich darüber diskutiert und gelöst! Viele Ajax request - async:false - mit timeout realisieren |
Stichwörter |
ajax, async:false, timeout, viele request |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Ajax Request erst nach 500ms Pause bei Eingabe | OscarWilde1024 | Javascript & Ajax | 1 | 10.02.2012 10:07 |
ConfirmBox mit Ajax | Benutzername | Javascript & Ajax | 0 | 05.08.2010 14:16 |
PHP Timeout mit Ajax umgehen?! | crossgolfer85 | Javascript & Ajax | 4 | 09.12.2009 20:19 |
Ajax Request Handler | insanic! | Javascript & Ajax | 9 | 18.08.2006 11:42 |
Buchrezension: AJAX - Frische Ansätze für das Webdesign | Flocke | Ressourcen | 2 | 01.11.2005 23:08 |