AJAXPRC是快速、简单的Javascript远程方法调用。它允许你使用Javascript调用服务端方法,基于JSON数据协议,开源授权(LGPL),可同步和异步调用。
使用AJAXRPC,您可以像开发传统的C/S程序一样,来开发WEB程序,让WEB开发更简单和高效。
支持服务端语言:Java、.Net、PHP。
支持浏览器:IE、FireFox、Opera、Safari、Chrome。
最新版本: 1.0
最近更新: 2010-10-10
使用AJAXRPC
首先,我们在服务端定义了一个类和静态方法:
注意:必须是公开的静态方法。
然后,我们使用AJAXRPC客户端,对服务端的方法进行调用。
注意:在调用RPC方法时,如果没有传递回调函数,则是同步调用;如果传递回调函数,则是异步调用。
同步调用
不传递回调函数,以try…catch来处理错误。在同步调用模式下,如果有网络错误、业务逻辑错误等,会抛出一个异常。
异步调用
传递回调函数作为参数。如果只有一个回调函数, 则默认是成功的回调函数。
当我们通过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完整示例
首先我们有一个服务端的类,和一些静态方法:
使用AJAXRPC只需要几个简单的步骤,依次为:描述RPC,发布RPC,生成RPC客户端代理脚本,创建Javascript RPC客户端对象并调用服务端方法。
1.rpc_config.xml
用于描述RPC
说明:
1.class是服务端的类名, id是javascript中使用到的类名, id可以自定义别名
2.class上定义的公开静态方法, 被全部发布到客户端
3.在php中,必须为service指定一个文件路径,如:<service id="Test" class="Test" path="/test/Test.php"/>
4.在java中,rpc_config.xml被放在web.xml的同级目录。
2.ajaxrpc/Service.jsp
发布RPC服务端方法,如ajaxrpc/Service.jsp。
3.ajaxrpc/Script.jsp
自动生成RPC的客户端代理脚本,如ajaxrpc/Script.jsp。
4.使用Javascript调用服务端方法
这里做几件事:
1)引入AJAXRPC.js;
2)自动生成调用脚本ajaxrpc/Script.jsp;
3)创建AJAXRPC_Client客户端对象new AJAXRPC_Client("ajaxrpc/Server.jsp");
4)直接调用服务端方法
AJAXRPC的使用是如此简单,但是能极大的简化WEB AJAX程序的复杂性,帮助人们更好更快的完成AJAX开发工作。