2010-10-26 4 views
1

J'ai une situation où j'ai besoin de faire des demandes AJAX séquentielles représentées par une liste ordonnée (<ol><li>..) sur la page. J'utilise jQuery.Demandes AJAX séquentielles

Exigences:

  1. Chaque demande doit attendre le précédent pour compléter avec succès un statut.
  2. Le message de réussite ou d'erreur doit être ajouté à l'élément de liste correspondant.
  3. Le processus devrait s'arrêter si une erreur se produit sur un élément.
  4. Les erreurs peuvent être des erreurs HTTP ou une erreur renvoyée avec la réponse au format JSON.

Ce que je travail:

  1. Looping sur la liste
  2. Faire $.getJSON appel à l'URL souhaitée pour chaque élément de la liste

Les articles 'exigences de sont les morceaux que je haven pas travaillé.


SOLUTION

J'ai fini à l'aide jQuery Message Queuing, mais je ne l'ai pas trouvé un moyen de renvoyer des erreurs HTTP à l'élément qui a donné naissance à la demande. Je montre plutôt une erreur dans un endroit différent. Je préférerais afficher des erreurs HTTP avec l'élément si quelqu'un peut m'aider avec cela.

Répondre

1

jQuery Message Queuing est ce que vous cherchez. Il effectue des requêtes AJAX en série (séquentielles). Vous pouvez voir une démonstration here.

+0

Cela semble prometteur! Vérification maintenant. – Sonny

1

Il peut y avoir éventuellement deux façons: -

  • Utilisation de jQuery.ajaxQueue Plugin. Ce plugin vous aidera à gérer les "conditions de course Ajax". Utilisation de l'appel synchrone au jQuery.ajax (cliquez sur l'onglet "options" pour les voir). Pour rendre l'appel synchrone, vous définissez l'option "async" dans l'appel Ajax à false. Mais, ça va ralentir les choses.

Espérons que ça aide.

Questions connexes