javascript调用服务端方法

qianwenjie 2012-12-17

http://www.php100.com/html/webkaifa/javascript/2010/1011/6499.html

http://blog.csdn.net/crackcell/article/details/1786731

AJAXPRC是快速、简单的Javascript远程方法调用。它允许你使用Javascript调用服务端方法,基于JSON数据协议,开源授权(LGPL),可同步和异步调用。使用AJAXRPC,您可以像开发传统的C/S程序一样,来开发WEB程序,让WEB开发更简单和高效。支持服务端语言:Java  AJAXPRC是快速、简单的Javascript远程方法调用。它允许你使用Javascript调用服务端方法,基于JSON数据协议,开源授权(LGPL),可同步和异步调用。

使用AJAXRPC,您可以像开发传统的C/S程序一样,来开发WEB程序,让WEB开发更简单和高效。

支持服务端语言:Java、.Net、PHP。

支持浏览器:IE、FireFox、Opera、Safari、Chrome。

下载:Java.NetPHP

博客

提交BUG

DeveloperGuide:EnglishChineseJapanese

最新版本:1.0

最近更新:2010-10-10

使用AJAXRPC

首先,我们在服务端定义了一个类和静态方法:

publicclassTest{

publicstaticStringsayHello(Stringname){

return"hello,"+name;

}

}

注意:必须是公开的静态方法。

然后,我们使用AJAXRPC客户端,对服务端的方法进行调用。

注意:在调用RPC方法时,如果没有传递回调函数,则是同步调用;如果传递回调函数,则是异步调用。

同步调用

<scripttype="text/javascript">

......

try{

varobj=Test.sayHello('world!');

......

}catch(e){

//e.error错误码

//e.message错误描述

}

......

</script>

不传递回调函数,以try…catch来处理错误。在同步调用模式下,如果有网络错误、业务逻辑错误等,会抛出一个异常。

异步调用

<scripttype="text/javascript">

......

Test.sayHello('world!',

function(obj){//successcallbackfunction......},function(error,message){//failcallbackfunction}

);

......

</script>

传递回调函数作为参数。如果只有一个回调函数,则默认是成功的回调函数。

当我们通过Javascript调用服务端方法时,会传递一些参数,这些参数有一个约定的类型转换,如下表。

数据类型映射表

AJAXRPC支持基本数据类型、自定义类,不支持泛型。

JavascriptJava.NetPhp说明

NumberShort,short

Integer,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,MapHashtable,IDictionaryObject

ArrayArrayList,ListArrayList,IListArray

nullnullnullNULL

AJAXRPC是一个基于JSON数据协议的AJAX环境的RPC项目,优点是体积小,实现简单,使用方便,能支持java\.net\php平台,而且是基于LGPL开源协议的,可以比较方便应用到项目中

相关推荐