?? 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協(xié)議的JavaScript實(shí)現(xiàn)</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">異步回調(diào)的編程模型</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">支持瀏覽器前進(jìn)/后退按鈕</A>
<LI><A href="http://www.amowa.net/buffalo/zh/features.html#toc10">支持?jǐn)?shù)據(jù)綁定</A>
</LI></UL></DIV>
<DIV class=body id=body>
<P>Ajax正開始大行其道,Sun的Blueprints中已經(jīng)開始包括ajax的支持。但是直接使用XMLHTTP在大多數(shù)情況下編程并不容易。Buffalo使得這一過程更加容易。Buffalo首先是burlap協(xié)議的JavaScript實(shí)現(xiàn),但是他為Amowa(面向異步消息的Web應(yīng)用)/Ajax提供了更多的支持。開發(fā)者可以使用Buffalo為web應(yīng)用更加容易的添加Amowa/Ajax特性;另外,隨著開發(fā)者的要求,Buffalo開始逐漸加入了Web元素,使得Buffalo逐漸向一個全功能的、新型的Web框架逐漸靠近。
</P><A name=toc1></A>
<H3>Burlap協(xié)議的JavaScript實(shí)現(xiàn)</H3>
<P>事實(shí)上,burlap協(xié)議應(yīng)該是目前最適合使用用作web
remoting的通信協(xié)議,全面,簡潔,適用。Buffalo實(shí)現(xiàn)了burlap協(xié)議中絕大部分?jǐn)?shù)據(jù)類型的javascript序列化/反序列化。 </P><A
name=toc2></A>
<H3>Java對象到JavaScript對象的雙向序列化全面支持</H3>
<P>java端任意一個方法調(diào)用產(chǎn)生的結(jié)果,都可以被透明的序列化到j(luò)avascript端,無論是這個對象多么復(fù)雜;無論是簡單的原子類型(String, int,
long, boolean)還是復(fù)雜的對象(List,
Map),甚至你自己定義的業(yè)務(wù)對象,buffalo可以完整的將其序列化到j(luò)avascript端,你可以用javascript與其交互。buffalo的這項(xiàng)特性久經(jīng)考驗(yàn),成為它最富特色的功能。例如,userService.listAll()返回所有用戶列表(java.util.List):
</P>
<P><IMG alt="" src="features.files/Class_Diagram__username.png" align=middle
border=0> </P>
<P>客戶端調(diào)用方式: <PRE class=code>buffalo.remoteCall("userService.listAll",[],function(reply){
// 不用擔(dān)心,reply.getResult會從聰明的判斷服務(wù)器端遠(yuǎn)程調(diào)用的結(jié)果類型。
var userList = reply.getResult();
var firstUserFamilyName = userList[0].name.familyName;
});
</PRE>
<P></P><A name=toc3></A>
<H3>異步回調(diào)的編程模型</H3>
<P>在buffalo
1.1之前,每一個方法調(diào)用都是異步的,在1.1版本之后,Buffalo支持同步調(diào)用(盡管不推薦這么做)。兩者編程模型完全相同,你可能這樣使用系統(tǒng)的登錄功能:
</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一樣,在加載系統(tǒng)時出現(xiàn)小小的loading條,而不是切換頁面?Buffalo給你支持。onLoading, onFinish,
onError, 你可以定義這些事件,使之符合自己應(yīng)用的需要。 </P><A name=toc5></A>
<H3>簡單,直觀,易于使用</H3>
<P>Buffalo開發(fā)者盡最大努力將API設(shè)計(jì)的易于使用,無論是客戶端還是服務(wù)器端,盡可能不讓開發(fā)者了解buffalo細(xì)節(jié)。 </P>
<UL>
<LI><B>服務(wù)器端</B>,使用buffalo的開發(fā)者,幾乎不需要了解buffalo的java代碼結(jié)構(gòu)。任何POJO都可以成為Buffalo的服務(wù)被暴露出來。
<P></P>
<LI><B>客戶端</B>,開發(fā)者只需要與一個對象交互:Buffalo,
并且只需要與為數(shù)不多的方法進(jìn)行交互即可。任何一個初學(xué)者,可以在半小時之內(nèi)熟悉buffalo并開始開發(fā)。 </LI></UL><A name=toc6></A>
<H3>集成Prototype Library</H3>
<P>參考Ruby<B>簡單</B>的思想,Prototype為真正的web開發(fā)提供了簡便直接的支持。Buffalo
1.2版本開始用Prototype語法重寫,并直接構(gòu)建在其之上,這是因?yàn)镻rototype是可以直接使用,幾乎不需學(xué)習(xí)就可以為web開發(fā)帶來巨大好處的。
</P><A name=toc7></A>
<H3>Spring集成</H3>
<P>Spring是當(dāng)前最流行的輕量級容器,Buffalo對它進(jìn)行了支持。Spring中任意一個配置過的bean,
都可以通過簡單的配置被暴露為buffalo服務(wù)。 </P><A name=toc8></A>
<H3>瀏覽器兼容</H3>
<P>Buffalo目前支持IE6/Firefox 1.0+瀏覽器。 </P><A name=toc9></A>
<H3>支持瀏覽器前進(jìn)/后退按鈕</H3>
<P>許多大面積使用Ajax的web應(yīng)用常常陷入一個瀏覽器前進(jìn)后退功能失效的困境。Buffalo
1.2版本中解決了這一問題。只要在主頁面中加入buffalo-blank.html的引用,并采用buffalo.switchView的方法,你會發(fā)現(xiàn)瀏覽器的前進(jìn)后退按鈕可用,并且能正確地進(jìn)行導(dǎo)航。
</P><A name=toc10></A>
<H3>支持?jǐn)?shù)據(jù)綁定</H3>
<P>對于一般的數(shù)據(jù)返回值,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>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -