特征

轻量级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
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。