AJAXRPC让javascript直接调用服务端方法
AJAXRPC让javascript直接调用服务端方法
注意:必须是公开的静态方法。
然后,我们使用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支持基本数据类型、自定义类,不支持泛型。
? JavascriptJava.NetPhp说明NumberShort,shortInteger,int
Long,long
Float,float
Double,doubleshort,Int16
int,Int32
long,Int64
float
Double,doubleInteger
Float
Double数字类型之间没有严格的界限,可以任意转换BooleanBoolean,booleanBoolean,boolBoolean?StringStringString,stringString?DateDateDateTimeString日期字符串”Y-m-d\TH:i:s“格式,php需要额外处理ObjectHashMap,Map Hashtable,IDictionary Object?ArrayArrayList,List ArrayList,IList Array?nullnullnullNULL?
??? AJAXRPC是一个基于JSON数据协议的AJAX环境的RPC项目, 优点是体积小, 实现简单, 使用方便, 能支持
?
??? java\.net\php平台, 而且是基于LGPL开源协议的, 可以比较方便应用到项目中.
?
??? 项目网站: http://ajaxrpc.com
??? 中文翻译地址: http://ajaxrpc.com/cn/index.html
?