Nicht selten wünscht man sich, von seinen AJAX-Responses , dass sie in der gleichen Reihenfolge ankommen, in der die Anfragen abgesendet wurden bzw. zumindest in der selben Reihenfolge in der sie beim Server verarbeitet wurden (z.B.: Warenkorb). In anderen Fällen ist dagegen klar, dass eine Antwort auf eine Anfrage keinen Sinn mehr macht, da der User sich - während der Verarbeitung des XHR-Requests - entschieden hat einen anderen Beitrag auszuwählen.
Aufgrund der Asynchronität von AJAX, schwankender Latency sowie unterschiedlich langer Verarbeitung durch serverseitige Scripte kann dies jedoch nicht vorausgesetzt werden. Um derartige sowie ähnliche AJAX-Anfragen zu behandeln, habe ich ein kleines jQuery-Plugin zum managen von AJAX geschrieben.
Mit diesem Script lassen sich AJAX-Anfragen queuen, abbrechen blocken sowie AJAX-Antworten synchronisieren. Zum $.ajaxManager.
Hi Alexander,
danke fuer deine Arbeit! Habe dein Plugin erfolgreich im Einsatz,
es klappt super! Eigentlich sollte jQuery diese Funktionalitaet
im Core haben, denn mehrere parallelle Ajax-Requests sind mitunter
ja keine Seltenheit…
Gruss,
Falk
Comment by Falk Pauser — July 9, 2008 @ 1:24 am
danke für die Blumen. jQuery hat das wahrscheinlich deshalb nicht im Core, weil Ajax - entgegen des Hypes - im täglichen JS-Geeschäft relativ selten genutzt wird und bei Verwendung häufig unsinnige Doppelrequests, überholende Requests vernachlässigt werden.
Es kann aber sehr gut sein, dass soetwas ähnliches entweder im jQuery-Core oder im UI-Core landen wird. Eine zukünftige Version von jQuery wird ein Autocomplete/Combobox-Plugin beinhalten. Das autocomplete-Plugin von Jörn Zäfferer (http://bassistance.de/2008/06/25/release-autocomplete-plugin-101/) wird hier wahrscheinlich Grundlage sein und dieses setzt wiederum das Ajax-Queue-Plugin (http://plugins.jquery.com/project/ajaxqueue).
Comment by alexander farkas — July 27, 2008 @ 5:10 am