特征
轻量级xml协议的JavaScript实现
Buffalo采用一个轻量级协议(burlap的子集,并对作了小幅修改) ,它非常利于web remoting,而且足够简单。Buffalo实现包含了javascript对象的序列化和反序列化。
完全支持java到javascript序列化/反序列化
任何调用在java端方法后的结果都将透明地序列化到javascript端,无论这个对象是如何复杂。Buffalo能处理原始类型(String, int, long, boolean等)和对象类型(List, Map乃至你自己的业务域对象)的序列化。你可以在javascript端访问同样的属性,这就像在java端一样轻松。这个久经考验的特征已经在许多的真实项目中得到了验证。
图:User类

客户端的javascript代码:
buffalo.remoteCall("userService.listAll",[],function(reply){ var userList = reply.getResult(); var firstUserFamilyName = userList[0].name.familyName; });
基于回调的编程模型
每次远程调用过程大致如下:
var buffalo = new Buffalo("/bfapp/buffalo"); 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!"); } });
这种API是易学易用的。几乎每个用户都能在半小时内轻松学会使用。
支持异步事件
喜爱Gmail模样的loading吗? buffalo给你!在调用远程方法时,一个loading面板(panel)将显示在浏览器的右上角。当然你也可以定制onLoad、onFinish、onError事件来显示自己的个性信息。
简单的、易用的API
Buffalo开发者们尽力使服务器端和客户端的API都能易于使用。buffalo用户不需要了解实现的细节。
服务器端。任意POJO都能暴露为buffalo服务。无需编写buffalo特定的java文件。
客户端。用户仅仅使用一个buffalo对象和为数不多的方法。它简单到用户在半小时内就能掌握。
集成Prototype Javascript库
Buffalo客户端脚本建造在这个著名的原型库之上,并利用它的类机制和元素选择器。你可以从这个提供便利的基础组织------"prototype"直接获益。
Spring集成
Spring是最流行的IoC容器。每个被spring管理的Bean都能通过简单的配置成为buffalo服务。
兼容性
所有特性均支持IE/Firefox的所有特征, 远程调用特性支持IE5.5+/Firefox1.0+/Safari/Opera9+。
支持浏览器前进/后退
大多数AJAX应用都不支持浏览器的前进/后退,比如MSN Live Mail。Buffalo解决了这个问题。你所需要做的就是增加一个buffalo-blank.html作为iframe,然后使用buffalo.switchView来导航你的页面,这时你会发现导航工作的很棒。(在IE/Firefox上完成测试)(来源 www.iocblog.net)
支持数据绑定
对于大多数常用的HTML成员,buffalo提供自动化的绑定功能,可以绑定javascript对象到HTML中的成员。现在我们支持text, checkbox, radio, textarea, select, span/div, table等常用的HTML成员。
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。