您好,登錄后才能下訂單哦!
當前在以Java為后臺的AJAX框架中,比較有名兩個是JSON-RPC-Java 和DWR。
Swato與他們的共同之處是實現了JavaScript與Java 對象間的數據轉換與遠程方法調用。從各自提供的unitTest Demo可以看到這一實現的支持能力基本是相同的。
各自的差異主要在以下幾個方面。
1.為開發人員開發前臺JavaScript提供的支持。
由于采用AJAX框架后,很多View和Control的代碼需要轉移到前臺用JavaScript實現。然而JavaScript的編程畢竟是比較痛苦的。 在JSON-RPC-Java中,從服務器返回到前臺的雖然是JSON--JavaScript對象,但是他沒有提供組件幫助開發人員處理這些對象。 對于返回XML的框架,一句一句書寫DOM層次訪問是比較痛苦的。
而對于HTML DOM的操作,也是比較痛苦的,所以所以DWR提供了一系列DWRUtils來幫你減輕這一部分工作。但是對于一些需要更加靈活的View處理,利用DWRUtils仍然感覺不夠用。
在Swato中,客戶端接受的數據可以是JSON(Swato的后臺是直接把Java對象映射成JSON),也可以是XML(你可以從遠端URL中獲取XML, 它在Swato客戶端引擎中被轉化為JSON,參見RSS Reader的例子)。所以對于開發人員來說,它在客戶端所要關心的只是JavaScript對象。(結構與Java對象或XML結構對應)。然后利用Swato提供的一些View組件(AutoSuggest, Select, Form)進行渲染。對于自定義性比較強的View控件,你可以在前端使用Template引擎 (來自TrimPath,類似于Velocity的簡單語法)。甚至可以把它封裝成你自己的組件,只要在其中實現gotResult與gotError函數,便可以很輕松的與Swato遠程調用功能集成。參見(CRUD例子中的代碼。)
Swato力圖在客戶端為開發人員減輕JavaScript代碼的編碼量,其實Swato的unitTest例子來自于DWR。 類似的測試功能,在邏輯控制上,DWR用了幾百行的JavaScript而在Swato上只需要幾十行。
不管用哪一個框架,由于JavaScript缺乏強大的編輯器和調試器,所以開發起來還是比較麻煩,對此,Swato在前臺集成了fvlogger, 相當于Java方面的Log4j,為Js的開發帶來更大便利。
2.后臺服務的注冊與訪問控制方式。
在后臺服務的注冊方式上,JSON-RPC-Java默認的是在Session中的Bridge里注冊要使用的Java對象。這種方式有很多的限制,比如使用的時候需要JSP或者Servlet程序中來進行注冊。形式不夠靈活,服務的周期管理也比較麻煩。這是JSON-RPC-Java被批評的重點。
DWR有了很大的進步,它用dwr.xml將你需要暴露的服務明確地定義在其中,在前臺的JavaScript中,用