当前位置: 代码迷 >> JavaScript >> AJAXRPC让javascript直接调用服务端步骤
  详细解决方案

AJAXRPC让javascript直接调用服务端步骤

热度:159   发布时间:2012-11-06 14:07:00.0
AJAXRPC让javascript直接调用服务端方法
新闻频道 Web前端新闻 AJAX

8顶
1踩

2

原创新闻 AJAXRPC让javascript直接调用服务端方法

9 小时前 by 见习记者 fcrong
评论(13) 有1326人浏览 收藏
<script type="text/javascript"></script>
< > 猎头职位: <script type="text/javascript"></script>北京: 【北京】诚聘java技术负责人

AJAXPRC是快速、简单的Javascript远程方法调用。它允许你使用Javascript调用服务端方法,基于JSON数据协议,开源授权(LGPL),可同步和异步调用。

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

支持服务端语言:Java、.Net、PHP。
支持浏览器:IE、FireFox、Opera、Safari、Chrome。

  • 下载: Java?? .Net?? PHP
  • 博客
  • 提交BUG
  • Developer Guide:English?? Chinese?? Japanese

最新版本: 1.0
最近更新: 2010-10-10

使用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

?

  相关解决方案