Aufgeschoben und Ajax

8

Einen JSON-Service wie folgt lesen:

%Vor%

Erster Netzwerk-Trace ist:

  1. aktiveIDs = [14,15]
  2. info? id = 14 (dauert 2 Sekunden) = "foo"
  3. info? id = 15 (dauert 4 Sekunden) = "bar"

In diesem Fall gibt die Warnung "2".

Sekunden Netzwerk-Trace ist anders:

  1. activeIDs = [14,15] ;
  2. info? id = 14 (dauert 20 Sekunden) = "foo" (dauert jetzt sehr lange)
  3. info? id = 15 (dauert 1 Sekunde) = "bar"

In diesem Fall gibt der Alarm 1 nach einer Sekunde, das ist schlecht !!!

Frage:

Wie verwendet man $ .Deferred anstelle von isLast ?

    
Peter Rader 05.05.2016, 09:41
quelle

3 Antworten

7

Sie müssen warten, bis alle Anfragen abgeschlossen sind, bevor alert ing.

%Vor%

Dies setzt voraus, dass alle Anforderungen erfolgreich sind. Es sieht auch so aus, als gäbe es ein paar Tippfehler

  • Wo wird tableRows aktualisiert?
  • Wo ist entries definiert?

Bearbeiten Jetzt verwenden Sie den Promise Style Success Handler. Sollte das Ergebnis in tableRows vor dem Aufruf des $.when().then Callbacks

pushen     
phuzi 05.05.2016 10:02
quelle
1

Warum willst du $ .Löschen? Ihre $ .ajax Aufrufe geben ein Versprechen zurück, also können Sie es verwenden:

%Vor%

(inspiriert von dieser Antwort)

>

Sie können deferred verwenden, indem Sie diese Lösung verwenden und sie an einen verzögerten übergeben, wenn Sie möchten, aber das ist nicht notwendig:

%Vor%

(Nicht getestet, tut mir leid)

    
Tistkle 12.05.2016 08:08
quelle
-1

Verwenden Sie jQuery when

%Vor%     
Peter Darmis 09.05.2016 06:50
quelle

Tags und Links