AJAXPRC是快速、簡單的Javascript遠(yuǎn)程方法調(diào)用。它允許你使用Javascript調(diào)用服務(wù)端方法,基于JSON數(shù)據(jù)協(xié)議,開源授權(quán)(LGPL),可同步和異步調(diào)用。
使用AJAXRPC,您可以像開發(fā)傳統(tǒng)的C/S程序一樣,來開發(fā)WEB程序,讓W(xué)EB開發(fā)更簡單和高效。
支持服務(wù)端語言:Java、.Net、PHP。
支持瀏覽器:IE、FireFox、Opera、Safari、Chrome。
下面簡單演示一下大概的使用方式, 具體可以去網(wǎng)站去看.
首先,我們在服務(wù)端定義了一個(gè)類和靜態(tài)方法:
public class Test {
public static String sayHello(String name){
return "hello, " + name;
}
}
注意:必須是公開的靜態(tài)方法。
然后,我們使用AJAXRPC客戶端,對服務(wù)端的方法進(jìn)行調(diào)用。
注意:在調(diào)用RPC方法時(shí),如果沒有傳遞回調(diào)函數(shù),則是同步調(diào)用;如果傳遞回調(diào)函數(shù),則是異步調(diào)用。
同步調(diào)用
<script type="text/javascript">


Test.sayHello('world!',
function(obj){ //success callback function


},
function(error, message){ //fail callback function
}
);


</script>
不傳遞回調(diào)函數(shù),以try…catch來處理錯(cuò)誤。在同步調(diào)用模式下,如果有網(wǎng)絡(luò)錯(cuò)誤、業(yè)務(wù)邏輯錯(cuò)誤等,會拋出一個(gè)異常。
異步調(diào)用
<script type="text/javascript">


Test.sayHello('world!',
function(obj){ //success callback function


},
function(error, message){ //fail callback function
}
);


</script>
傳遞回調(diào)函數(shù)作為參數(shù)。如果只有一個(gè)回調(diào)函數(shù), 則默認(rèn)是成功的回調(diào)
這種數(shù)據(jù)交互方式非常方便和高效, 其實(shí)已經(jīng)有不少的基于WEB的RPC項(xiàng)目了, 如dwr(java), ajaxpro(.net), xajax(php)等, 不過他們都有或多或少的缺點(diǎn).
比如dwr, 它是有自己的一套數(shù)據(jù)協(xié)議, 造成的后果就是, 傳輸?shù)捏w積比JSON要大2倍以上.
AJAXRPC是一個(gè)基于JSON數(shù)據(jù)協(xié)議的AJAX環(huán)境的RPC項(xiàng)目, 優(yōu)點(diǎn)是體積小, 實(shí)現(xiàn)簡單, 使用方便, 能支持java".net"php平臺, 而且是基于LGPL開源協(xié)議的, 可以比較方便應(yīng)用到項(xiàng)目中.
項(xiàng)目網(wǎng)站:
http://ajaxrpc.com
中文翻譯地址:
http://ajaxrpc.com/cn/index.html