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

时间:2010-11-19 18:57:21

标签: web-services asynchronous

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

5 个答案:

答案 0 :(得分:68)

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

  1. 客户端调用Web服务。在呼叫中,客户端发送由客户端实现为服务的回调端点。
  2. Web服务返回“收到消息”回复。 ... (发生一些其他处理) ...
  3. Web服务完成其任务,然后调用客户端提供的回调端点。
  4. 客户端回调回复收到的消息。
  5. 请参阅Developing Asynchronous Web ServicesHow to: Create Asynchronous Web Service Methods

答案 1 :(得分:11)

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

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

答案 2 :(得分:9)

当您调用同步Web服务时,服务处理请求并返回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

答案 3 :(得分:8)

问题在于它是异步的Web服务还是您的访问权限。在网页的上下文中,服务更可能是同步的,但是它是异步访问的。

最有可能的是,该服务是通过AJAX调用的。调用该服务,然后页面继续。当响应进入时,异步执行成功或失败功能。

答案 4 :(得分:3)

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

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

相关问题