Что означает, когда веб-сервис является асинхронным?
Что означает, когда веб-сервис является асинхронным? Используется ли это только тогда, когда вы вызываете его с помощью 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
Асинхронная веб-служба позволяет клиенту отправлять запрос, обрабатывать запрос и отвечать клиенту по истечении заданного времени - клиент не блокирует всю активность при получении ответа.
Сравнительно, веб-служба, которая является синхронной, будет предоставлять клиенту непосредственно ответ, ожидая, что клиент заблокирует всю активность до тех пор, пока не будет возвращен ответ. В этом случае веб-служба будет ограничивать клиент обрабатывать запросы по одному.