JSON-RPC-Java 和DWR比較(轉)
當前在以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.將你需要暴露的服務明確地定義在其中,在前臺的JavaScript中,用
相關文章
- (轉)ORACLE 中IN和EXISTS比較Oracle
- js 深比較和淺比較JS
- 字串大小寫轉換和字串的比較字串
- 【轉載】webservice框架xfire和axis的比較Web框架
- Oracle date 型別比較和String比較Oracle型別
- TCP和UDP比較TCPUDP
- Java和JavaSciprt比較Java
- Redis 和 Memcached 比較Redis
- MongoDB和Redis比較。MongoDBRedis
- MongoDB和MySQL比較MongoDBMySql
- ETL和EAI比較AI
- 查詢oracle比較慢的session和SQL[轉]OracleSessionSQL
- 比較 python & perl(轉)Python
- Go和Python比較的話,哪個比較好?GoPython
- 三層交換機和路由器的比較(轉)路由器
- etcd和redis比較Redis
- 比較RAC和RxSwiftSwift
- Swift和Objective C比較SwiftObject
- XMLHttpRequest和fetch比較XMLHTTP
- [Oracle] minus 和 not exists比較Oracle
- ORACLE 中IN和EXISTS比較Oracle
- 比較字串和數字串字串
- ejb 和 javabean的比較JavaBean
- 索引的分析和比較索引
- ImageMagic 和 GraphicsMagick 的比較
- GML、SVG、VML的比較 (轉)SVG
- 比較perl模組的版本(轉)
- 流行語言的比較 (轉)
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- Zope的優點和Apache+PHP+MySQL的比較(轉)ApachePHPMySql
- 用PHP連mysql和oracle資料庫效能比較(轉)PHPMySqlOracle資料庫
- Go 與 C++ 的對比和比較GoC++
- TreeMap和HashMap的元素比較HashMap
- YYWebImage,SDWebImage和PINRemoteImage比較WebREM
- Elasticsearch、MongoDB和Hadoop比較。ElasticsearchMongoDBHadoop
- JPA和mybatis的CRUD比較MyBatis
- ORACLE和MSSQL中行鎖比較OracleSQL