2011-08-03 104 views

回答

4

簡而言之:客戶端需要異步,服務器端需要同步。

Javascript中的所有RPC(XmlHttpRequest)調用都是異步的 - 當網絡調用完成時,您的代碼將被調用並返回結果。

因此,在客戶端使用GWT RPC時,必須提供一個Async接口(以及它的實現)以便在結果可用時進行調用。

您還必須提供在服務器端實現的相關Sync接口。

上有異步和同步接口應如何編寫一份合同:http://code.google.com/webtoolkit/doc/latest/tutorial/RPC.html

+0

但是爲什麼服務器端需要同步。我們不能使用異步服務器。如果你提供了更多的細節,我會更高興。 – ankit

2

好,我以爲你知道,任何JS瀏覽器是一種驅動的同步事件。 要響應RPC,您需要回調。 因此,在編寫Java代碼時,您需要將回調對象傳遞給一個調用。 但服務器端是一個簡單的方法調用,返回類型應該與回調參數相匹配。對?

因此,在這裏你可以得到2個接口,它們在編譯時爲你提供完整的類型安全。並允許它像以前一樣順暢地工作。