AJAXRPC:快速简单的远程方法调用
AJAXPRC是快速、简单的Javascript远程方法调用。它允许你使用Javascript调用服务端方法,基于JSON数据协议,开源授权(LGPL),可同步和异步调用。
使用AJAXRPC,您可以像开发传统的C/S程序一样,来开发WEB程序,让WEB开发更简单和高效。
支持服务端语言:Java、.Net、PHP。
支持浏览器:IE、FireFox、Opera、Safari、Chrome。
使用AJAXRPC
首先,我们在服务端定义了一个类和静态方法:
- public class Test {
- public static String sayHello(String name){
- return "hello, " + name;
- }
- }
注意:必须是公开的静态方法。
然后,我们使用AJAXRPC客户端,对服务端的方法进行调用。
注意:在调用RPC方法时,如果没有传递回调函数,则是同步调用;如果传递回调函数,则是异步调用。
同步调用
- <script type="text/javascript">
- ......
- try{
- var obj = Test.sayHello('world!');
- ......
- }catch(e){
- //e.error 错误码
- //e.message 错误描述
- }
- ......
- </script>
不传递回调函数,以try…catch来处理错误。在同步调用模式下,如果有网络错误、业务逻辑错误等,会抛出一个异常。
异步调用
- <script type="text/javascript">
- ......
- Test.sayHello('world!',
- function(obj){ //success callback function
- ......
- },
- function(error, message){ //fail callback function
- }
- );
- ......
- </script>
传递回调函数作为参数。如果只有一个回调函数, 则默认是成功的回调函数。
当我们通过Javascript调用服务端方法时,会传递一些参数,这些参数有一个约定的类型转换,如下表。
数据类型映射表
AJAXRPC支持基本数据类型、自定义类,不支持泛型。
| Javascript | Java | .Net | Php | 说明 |
| Number | Short,short Integer,int Long,long Float,float Double,double | short,Int16 int,Int32 long,Int64 float Double,double | Integer Float Double | 数字类型之间没有严格的界限,可以任意转换 |
| Boolean | Boolean,boolean | Boolean,bool | Boolean | |
| String | String | String,string | String | |
| Date | Date | DateTime | String | 日期字符串”Y-m-d\TH:i:s“格式,php需要额外处理 |
| Object | HashMap,Map | Hashtable,IDictionary | Object | |
| Array | ArrayList,List | ArrayList,IList | Array | |
| null | null | null | NULL |
AJAXRPC是一个基于JSON数据协议的AJAX环境的RPC项目,优点是体积小,实现简单, 使用方便,能支持java\.net\php平台,而且是基于LGPL开源协议的,可以比较方便应用到项目中。
更多的细节,你可以去他的网站查看。
项目网站: http://ajaxrpc.com
中文翻译地址: http://ajaxrpc.com/cn/index.html
本文作者:季氏安安([既是安安]博客采用 BY-NC-SA 协议进行授权. 转载请保留此链接,谢谢。)
原文链接:http://www.jsann.com/post/AJAXRPC-Quick_and_easy_remote_method_invocation.html


0 条留言
我要留言