| 

.NET C# Java Javascript Exception

1
Kommen AJAX Anfragen am Server in der richtigen Reihenfolge an oder kann es sein, dass sich Anfragen durch unterscheidliches Routing überholen?

Falls sie sich überholen, einen manuellen Counter einführen?
News:
15.09.2009
Patt 21 2
4 Antworten
2
Das hängt von der Definition von "RICHTIG" ab.
Die Anfragen kommen auf jeden nacheinander an, wie Scout es beschrieben hat.

Falls Die Anfragen durch Benutzeraktivitäten, z.Bsp. Klicken oder Ähnliches verursacht werden, kann man nicht davon ausgehen, daß die Anfragen in der Reihenfolge am Server ankommen, in der der User die Aktionen ausgelöst hat. Normalerweise sollten die Browser die Events schon linear ausführen, tun sie aber leider (ich spreche hier aus eigener Erfahrung) nicht.

Am besten Kapseln und/oder die Client-Server-Kommunikation mit speziellen Merkmale (nachrichten-IDs oder prioritätskennzeichen) versehen um so die Kontrolle über Anfrage und Antwort zu bekommen.

Da aber AJAX, wie der Name ja schon sagt komplett asynchron arbeitet, ist es SEHR aufwendig, die Prozesse im Nachhinein synchronisieren zu wollen, da immer diie Gefahr besteht, das Anfragen nur halb, gar nicht oder mit einem HTTP-Fehler beantwortet werden können. Hier muss man sehr viele Fallback-Lösungen basteln.
15.09.2009
MiW 1,0k 1 8
1
+1 schöne Antwort
Lugi 15.09.2009
1
Das was du unter Request verstehst kommt immer in der richtigen Reihenfolge an.
Das einzigste was mit unter unterschiedlich ankommen kann, sind TCP Pakete. Da diese aber schon durch zugrunde liegende Schichten zusammen gesetzt werden, erhälst du dein Request immer in der richtigen Reihenfolge. Es sei denn das initial Paket würde vorher losgeschickt, was aber NIE vorkommt.

Meinst du hingegen, dass du mehrere Requests absetzt und dann erwartest, dass die Response darauf in der richtigen Reihenfolge kommen, dann ist dem nicht so. Die Response kommen immer in der Reihenfolge an, wie Sie vom verarbeitenden Server abgearbeitet wurden. Routing hat da gar keinen Einfluss drauf.
Aber Sinn und Zweck ist ja gerade dass die Antworten unabhängig zurück kommen.

Grüßle
15.09.2009
Scout 1,4k 2 8
Scout 1,4k 2 8
1
Also mehrere Request können schon in x-beliebieger Reihenfolge terminieren.
Das hängt dann aber eher von der Verarbeitungsgeschwindigkeit auf dem Server ab.

Kapsel am Besten jeden Request in einem Object und verwende die Events zum Weiterarbeiten nachdem der Request fertig ist.

Oder: Nutze jQuery
15.09.2009
DaSpors 4,2k 2 8
0
Du solltest zudem noch beachten, dass ein Browser unter Umständen nicht sofort alle ausgeführten AJAX-Requests auch wirklich ausführt. Viel mehr wird gewartet, bis im Pool der möglichen gleichzeitigen Requests wieder ein Platz frei geworden ist, erst dann wird die "Request-Queue" weiter abgearbeitet.
15.09.2009
Blauesocke 637 2 8

Stelle deine Javascript-Frage jetzt!