📄 features.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0045)http://www.amowa.net/buffalo/zh/features.html -->
<HTML><HEAD><TITLE>特征列表</TITLE>
<META content="MSHTML 6.00.2900.2802" name=GENERATOR>
<META http-equiv=Content-Type content="text/html; charset=utf-8"><LINK
href="features.files/stylesheet.css" type=text/css rel=stylesheet></HEAD>
<BODY>
<DIV class=header id=header>
<H1>特征列表</H1>
<H2>Michael Chen</H2>
<H3>2005/12/24</H3></DIV>
<DIV class=toc id=toc>
<UL>
<LI><A
href="http://www.amowa.net/buffalo/zh/features.html#toc1">Burlap协议的JavaScript实现</A>
<LI><A
href="http://www.amowa.net/buffalo/zh/features.html#toc2">Java对象到JavaScript对象的双向序列化全面支持</A>
<LI><A href="http://www.amowa.net/buffalo/zh/features.html#toc3">异步回调的编程模型</A>
<LI><A href="http://www.amowa.net/buffalo/zh/features.html#toc4">支持异步事件</A>
<LI><A
href="http://www.amowa.net/buffalo/zh/features.html#toc5">简单,直观,易于使用</A>
<LI><A href="http://www.amowa.net/buffalo/zh/features.html#toc6">集成Prototype
Library</A>
<LI><A href="http://www.amowa.net/buffalo/zh/features.html#toc7">Spring集成</A>
<LI><A href="http://www.amowa.net/buffalo/zh/features.html#toc8">浏览器兼容</A>
<LI><A
href="http://www.amowa.net/buffalo/zh/features.html#toc9">支持浏览器前进/后退按钮</A>
<LI><A href="http://www.amowa.net/buffalo/zh/features.html#toc10">支持数据绑定</A>
</LI></UL></DIV>
<DIV class=body id=body>
<P>Ajax正开始大行其道,Sun的Blueprints中已经开始包括ajax的支持。但是直接使用XMLHTTP在大多数情况下编程并不容易。Buffalo使得这一过程更加容易。Buffalo首先是burlap协议的JavaScript实现,但是他为Amowa(面向异步消息的Web应用)/Ajax提供了更多的支持。开发者可以使用Buffalo为web应用更加容易的添加Amowa/Ajax特性;另外,随着开发者的要求,Buffalo开始逐渐加入了Web元素,使得Buffalo逐渐向一个全功能的、新型的Web框架逐渐靠近。
</P><A name=toc1></A>
<H3>Burlap协议的JavaScript实现</H3>
<P>事实上,burlap协议应该是目前最适合使用用作web
remoting的通信协议,全面,简洁,适用。Buffalo实现了burlap协议中绝大部分数据类型的javascript序列化/反序列化。 </P><A
name=toc2></A>
<H3>Java对象到JavaScript对象的双向序列化全面支持</H3>
<P>java端任意一个方法调用产生的结果,都可以被透明的序列化到javascript端,无论是这个对象多么复杂;无论是简单的原子类型(String, int,
long, boolean)还是复杂的对象(List,
Map),甚至你自己定义的业务对象,buffalo可以完整的将其序列化到javascript端,你可以用javascript与其交互。buffalo的这项特性久经考验,成为它最富特色的功能。例如,userService.listAll()返回所有用户列表(java.util.List):
</P>
<P><IMG alt="" src="features.files/Class_Diagram__username.png" align=middle
border=0> </P>
<P>客户端调用方式: <PRE class=code>buffalo.remoteCall("userService.listAll",[],function(reply){
// 不用担心,reply.getResult会从聪明的判断服务器端远程调用的结果类型。
var userList = reply.getResult();
var firstUserFamilyName = userList[0].name.familyName;
});
</PRE>
<P></P><A name=toc3></A>
<H3>异步回调的编程模型</H3>
<P>在buffalo
1.1之前,每一个方法调用都是异步的,在1.1版本之后,Buffalo支持同步调用(尽管不推荐这么做)。两者编程模型完全相同,你可能这样使用系统的登录功能:
</P>
<P><PRE class=code>// var buffalo = new Buffalo("/bfapp/buffalo"); // 1.2版本的写法
buffalo.remoteCall("userService.login",["username","password"], function(reply) {
var success = reply.getResult();
if (success) {
alert("You login successfully");
} else {
alert("user name or password incorrect!");
}
});
</PRE>
<P></P><A name=toc4></A>
<H3>支持异步事件</H3>
<P>喜欢像gmail一样,在加载系统时出现小小的loading条,而不是切换页面?Buffalo给你支持。onLoading, onFinish,
onError, 你可以定义这些事件,使之符合自己应用的需要。 </P><A name=toc5></A>
<H3>简单,直观,易于使用</H3>
<P>Buffalo开发者尽最大努力将API设计的易于使用,无论是客户端还是服务器端,尽可能不让开发者了解buffalo细节。 </P>
<UL>
<LI><B>服务器端</B>,使用buffalo的开发者,几乎不需要了解buffalo的java代码结构。任何POJO都可以成为Buffalo的服务被暴露出来。
<P></P>
<LI><B>客户端</B>,开发者只需要与一个对象交互:Buffalo,
并且只需要与为数不多的方法进行交互即可。任何一个初学者,可以在半小时之内熟悉buffalo并开始开发。 </LI></UL><A name=toc6></A>
<H3>集成Prototype Library</H3>
<P>参考Ruby<B>简单</B>的思想,Prototype为真正的web开发提供了简便直接的支持。Buffalo
1.2版本开始用Prototype语法重写,并直接构建在其之上,这是因为Prototype是可以直接使用,几乎不需学习就可以为web开发带来巨大好处的。
</P><A name=toc7></A>
<H3>Spring集成</H3>
<P>Spring是当前最流行的轻量级容器,Buffalo对它进行了支持。Spring中任意一个配置过的bean,
都可以通过简单的配置被暴露为buffalo服务。 </P><A name=toc8></A>
<H3>浏览器兼容</H3>
<P>Buffalo目前支持IE6/Firefox 1.0+浏览器。 </P><A name=toc9></A>
<H3>支持浏览器前进/后退按钮</H3>
<P>许多大面积使用Ajax的web应用常常陷入一个浏览器前进后退功能失效的困境。Buffalo
1.2版本中解决了这一问题。只要在主页面中加入buffalo-blank.html的引用,并采用buffalo.switchView的方法,你会发现浏览器的前进后退按钮可用,并且能正确地进行导航。
</P><A name=toc10></A>
<H3>支持数据绑定</H3>
<P>对于一般的数据返回值,buffalo提供了绑定的功能,能够迅速的将javascript对象的值绑定到html元素上。绑定的元素支持text,
checkbox, radio, textarea, select, span/div, table. </P></DIV><!-- html code generated by txt2tags 2.3 (http://txt2tags.sf.net) --><!-- cmdline: txt2tags features.t2t --></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -