2010-11-19 35 views

回答

5

問題是,它是否是異步的Web服務,或者您是否可以訪問它。在網頁的上下文中,服務更可能是同步的,但它是異步訪問的。

很可能,該服務正在通過AJAX調用。電話打到服務,然後頁面繼續。當響應進入時,成功或失敗的函數都是異步執行的。

10

同步意味着您調用一個Web服務(或函數或其他)並等待它返回 - 在呼叫返回之前,所有其他代碼執行和用戶交互都將停止。異步意味着您在等待Web服務調用返回時不會暫停所有其他操作。其他代碼執行和/或用戶可以繼續與頁面(或程序UI)交互。

所以,我不會說Web服務本身是異步的,我會說你的ajax調用服務是異步的。

+0

但說實話,是不是一個正確的聲明說,Web服務本身是不是異步 – sowen 2016-02-09 17:03:29

1

異步Web服務允許客戶端提交請求,處理請求並在給定時間後響應客戶端 - 客戶端在接收到響應時不會阻止所有活動。

比較而言,同步的Web服務會直接向客戶端提供響應,期望客戶端阻止所有活動,直到返回響應。在這種情況下,Web服務會限制客戶一次處理一個請求。

+0

-1:對不起,該服務,但是否是同步還是不無關與客戶打交道。 – 2010-11-19 19:31:03

+0

詳細說明「無」,這是強烈的聲明。也許你還有更多要補充的東西......你給了「什麼」而不是「爲什麼」。沒有客戶端的服務器不是很有用;通過如何使用Web服務以及如何使用Web服務來檢查Web服務本身的工作原理。 – 2010-11-22 00:10:32

55

我知道這是一個老話題,但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

6

當調用同步網絡服務的服務處理該請求並返回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

相關問題