Qu'est-ce que cela signifie lorsqu'un service Web est asynchrone? Est-ce uniquement utilisé lorsque vous l'appelez avec Ajax et que vous avez une partie sur votre page qui s'actualise lorsque le service Web est terminé? Je vous remercie.
La question est de savoir si c'est le service Web qui est asynchrone ou votre accès à celui-ci. Dans le contexte d'une page Web, il est plus probable que le service soit synchrone, mais qu'il soit accessible de manière asynchrone.
Très probablement, le service est appelé via AJAX. L'appel est effectué vers le service, puis la page continue. Lorsque la réponse arrive, les fonctions de réussite ou d'échec sont exécutées de manière asynchrone.
Je sais que c'est un vieux sujet, mais le fait qu'un service Web soit synchrone ou asynchrone dépend de la conception du service Web et n'a rien à voir avec Ajax. Une transaction de service Web asynchrone se déroule comme suit:
Voir Développement de services Web asynchrones ou Comment: créer des méthodes de service Web asynchrones
Synchrone signifie que vous appelez un service Web (ou une fonction ou autre) et attendez qu'il revienne - toute autre exécution de code et interaction utilisateur est arrêtée jusqu'à ce que l'appel revienne. Asynchrone signifie que vous n'interrompez pas toutes les autres opérations en attendant le retour de l'appel du service Web. Un autre code s'exécute et/ou l'utilisateur peut continuer à interagir avec la page (ou l'interface utilisateur du programme).
Donc, je ne dirais pas que le service Web lui-même est asynchrone, je dirais que votre appel ajax au service est asynchrone.
Lorsque vous appelez un service Web synchrone, le service traite la demande et renvoie le code d'état HTTP 200 OK (1) si tout s'est déroulé comme prévu, ou erreur 4xx. L'appel est bloqué pendant le traitement et la demande et peut prendre un temps considérable.
Lorsque le service Web est asynchrone, la principale différence est que l'appel doit retourner instantanément avec HTTP 202 ACCEPTED (2), ce qui signifie que la demande est prise en file d'attente mais pas encore traitée.
(1) 200 OK http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1
(2) 202 ACCEPTÉ http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.
Un service Web asynchrone permet à un client de soumettre une demande, de traiter la demande et de répondre au client après un certain temps - le client ne bloquerait pas toute activité lors de la réception d'une réponse.
Comparativement, un service Web synchrone fournirait directement au client une réponse, s'attendant à ce que le client bloque toutes les activités jusqu'à ce qu'une réponse soit renvoyée. Dans ce cas, le service Web limiterait le client à traiter les demandes une par une.