当Web服务异步时,这意味着什么?

问题描述:

当Web服务异步时,这意味着什么?这是仅在您使用Ajax调用它时使用的,并且在Web服务完成时您的页面上有刷新的部分?谢谢。当Web服务异步时,这意味着什么?

问题是,它是否是异步的Web服务,或者您是否可以访问它。在网页的上下文中,服务更可能是同步的,但它是异步访问的。

很可能,该服务正在通过AJAX调用。电话打到服务,然后页面继续。当响应进入时,成功或失败的函数都是异步执行的。

同步意味着您调用一个Web服务(或函数或其他)并等待它返回 - 在呼叫返回之前,所有其他代码执行和用户交互都将停止。异步意味着您在等待Web服务调用返回时不会暂停所有其他操作。其他代码执行和/或用户可以继续与页面(或程序UI)交互。

所以,我不会说Web服务本身是异步的,我会说你的ajax调用服务是异步的。

+0

但说实话,是不是一个正确的声明说,Web服务本身是不是异步 – sowen 2016-02-09 17:03:29

异步Web服务允许客户端提交请求,处理请求并在给定时间后响应客户端 - 客户端在接收到响应时不会阻止所有活动。

比较而言,同步的Web服务会直接向客户端提供响应,期望客户端阻止所有活动,直到返回响应。在这种情况下,Web服务会限制客户一次处理一个请求。

+0

-1:对不起,该服务,但是否是同步还是不无关与客户打交道。 – 2010-11-19 19:31:03

+0

详细说明“无”,这是强烈的声明。也许你还有更多要补充的东西......你给了“什么”而不是“为什么”。没有客户端的服务器不是很有用;通过如何使用Web服务以及如何使用Web服务来检查Web服务本身的工作原理。 – 2010-11-22 00:10:32

我知道这是一个老话题,但Web服务是同步还是异步取决于Web服务的设计,并且与Ajax无关。异步Web服务事务如下进行:

  1. 客户端调用Web服务。在该呼叫中,客户端发送由客户端实现为服务的回叫终点。
  2. Web服务返回“收到消息”答复。 ... (发生其他处理) ...
  3. 的web服务,完成了它的任务,然后调用由客户端提供的回调端点。
  4. 客户端回叫回复并收到消息。

Developing Asynchronous Web ServicesHow to: Create Asynchronous Web Service Methods

+7

这是正确的答案... – 2015-06-02 14:39:39

+0

是的,有重要的2点(请求接收确认)和3.CALLBACK端点,需要由WSDL指定。 ......这确实需要WS fwk端的不同处理......所以这个@Donals响应只是正确的 – 2016-06-15 09:03:57

当调用同步网络服务的服务处理该请求并返回HTTP状态码200 OK(1)如果一切如预期,或错误4XX。呼叫在处理和请求时被阻止,并且可能需要很长时间。

当Web服务是异步的时候,主要区别是调用应该立即返回HTTP 202 ACCEPTED(2),这意味着请求在队列中进行但尚未处理。

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