Что означает, когда веб-сервис является асинхронным?

Что означает, когда веб-сервис является асинхронным? Используется ли это только тогда, когда вы вызываете его с помощью Ajax, и у вас есть часть на вашей странице, которая обновляется при выполнении веб-службы? Спасибо.

Ответы

Ответ 1

Вопрос в том, является ли это веб-служба асинхронной или доступ к ней. В контексте веб-страницы более вероятно, что служба является синхронной, но к ней обращаются асинхронно.

Скорее всего, услуга вызывается через AJAX. Вызов выполняется службой, и страница затем продолжается. Когда ответ приходит, асинхронно выполняются либо успешные, либо отказоустойчивые функции.

Ответ 2

Я знаю, что это старая тема, но независимо от того, является ли веб-служба синхронной или асинхронной, зависит от дизайна веб-службы и не имеет ничего общего с Ajax. Асинхронная транзакция веб-сервиса выполняется следующим образом:

  • Клиент вызывает веб-службу. В вызове клиент отправляет конечную точку обратного вызова, реализованную клиентом как услугу.
  • Веб-служба возвращает ответ "сообщение получил". ... (Происходит некоторая другая обработка) ...
  • Веб-служба завершает свою задачу, затем вызывает конечную точку обратного вызова, предоставленную клиентом.
  • Ответ на обратный вызов клиента с полученным сообщением.

См. Разработка асинхронных веб-сервисов или Как создать асинхронную веб-службу Методы

Ответ 3

Синхронный означает, что вы вызываете веб-службу (или функцию или что-то еще) и ждите, пока она не вернется - все остальные действия кода и взаимодействие пользователя прекращаются до тех пор, пока вызов не вернется. Асинхронный означает, что вы не останавливаете все остальные операции, ожидая возврата вызова веб-службы. Выполняется другой код и/или пользователь может продолжать взаимодействовать со страницей (или программным интерфейсом).

Итак, я бы не сказал, что сам веб-сервис является асинхронным, я бы сказал, что ваш вызов ajax для службы является асинхронным.

Ответ 4

При вызове синхронного веб-сервиса служба обрабатывает запрос и возвращает код состояния HTTP 200 OK (1), если все прошло так, как ожидалось, или ошибка 4xx. Вызов блокируется во время обработки и запроса и может занять значительное время.

Когда веб-сервис является асинхронным, основное различие заключается в том, что вызов должен немедленно вернуться с HTTP 202 ACCEPTED (2), что означает, что запрос выполняется в очереди, но еще не обработан.

(1) 200 OK http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1
(2) 202 ACCEPTED http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3

Ответ 5

Асинхронная веб-служба позволяет клиенту отправлять запрос, обрабатывать запрос и отвечать клиенту по истечении заданного времени - клиент не блокирует всю активность при получении ответа.

Сравнительно, веб-служба, которая является синхронной, будет предоставлять клиенту непосредственно ответ, ожидая, что клиент заблокирует всю активность до тех пор, пока не будет возвращен ответ. В этом случае веб-служба будет ограничивать клиент обрабатывать запросы по одному.