流行AJAX框架大比拼(二)

四、 DWR — 令人激动的服务器端集成
 
DWR (Direct Web Remoting) 同上述的框架性质上完全不同。DWR的重点是浏览器/服务器的交互。DWR框架的大部分API函数也是针对这种交互的。DWR是基于 java的框架,最适用于后端运行java应用的情况。
因为这些特性,DWR为开发呼叫中心应用提供了一种有趣的途径。这种方法不再使用 AJAX控制从服务器返回的文本信息,而是使用 javascript调用DWR框架的远程异步对象。实现起来很简单:通过在浏览器端的JavaScript构造和调用PBX和相关JAVA对象。这样就通过优雅而简洁的方式完成了客户端和服务器端的集成。
在Java代码里,定义了PBXService对象,用来根据呼叫用户代码从PBX获取用户详细信息。
 
  
public class PBXService ...{ public String getCallerName(int callerNumber)...{ ... } }
在html代码里,嵌入了使用PBXService对象和DWR引擎的JavaScript 方法。
 
   
<script type="text/javascript" src="ServiceProvider/dwr/interface/PBXService.js"> </script> <script type="text/javascript" src="ServiceProvider/dwr/engine.js"> </script> ...
从JavaScript调用PBXService的方法如下:
PBXService.getCallerName(18003456700, processPBXResponse);
自定义的JavaScript方法processPBXResponse用来处理PBXService.getCallerName 方法的返回结果
尽管不如Dojo的框架复杂精细,也不如Prototype与JavaScript的集成度高,DWR却提供了颇具吸引力的与服务端的集成方式。在与服务器端Java应用的集成方面,DWR做得最好。
五、 Yahoo UI (YUI) Toolkit —— 争做第一流的框架
 
YUI 是一种性能稳定的、功能丰富多彩、文档完善的 AJAX开发框架。在测试的几个框架中,YUI框架最具专业水准的感觉。
完整的呼叫中心应用由Yahoo工具集实现起来相当容易。列表和面板等展示层对象采用YUI的面板和对话框组件实现。对于后端PBX和账户查询系统的异步调用采用Yahoo ConnectorManager(连接管理器)和回调API函数实现。具体用法如下:
var pbxURL = 'http://<server>/ServiceProvider/acctService?callerName=' + callerName;
PbxCallback是 JavaScript对象,定义如下:
 
     
var requestFromPBX = YAHOO.util.Connect.asyncRequest('GET', pbxUrl, pbxCallback); var callback = { success:handleSuccess, failure: handleFailure argument: { callerName: "N/A" } };
HandleSuccess 是常规的JavaScript函数,用来读取PBX服务器返回的结果。并发出以PBX系统返回的呼叫用户名为参数的对于账户查询系统的调用。
 
     
var pbxURL = 'http://<server>/ServiceProvider/acctService?callerName=' + callerName; var requestFromAcct = YAHOO.util.Connect.asyncRequest('GET', acctURL, acctCallback);
读者可能会提出疑问,框架提供任务如此之多的特性,是否存在争议之处?确实如此。YUI是一套特定品牌API的框架,随处可见其商业公司的烙印。其设计和实现由Yahoo的一个项目组专门维护。同时也用来开发Yahoo公司的门户产品。虽然框架本身是免费的,却会在多处用户的应用代码中表明Yahoo产品的痕迹。(如图2)对于习惯于使用开源框架的开发人员这可能是个问题。

流行AJAX框架大比拼(图二)

图2 

一般来说,YUI工具箱简单、易用。YUI和其它框架比较起来要庞大得多,然而对框架比较熟悉后,用它开发基本上就是一个组装的过程:在界面上布置各种组件,然后使其协同运行。总体看来,这是个不错的框架。

六、Google Web Toolkit— 完全Java
GWT的开发理念同其它几个框架完全不同。GWT是完全基于Java的开发框架,所有的Web组件采用Java编写,然后编译成具有 AJAX功能的web页面。因为笔者是多年的java 程序员,所以对这种相对新奇的方式使用起来感觉相当自如。但是如果不熟悉 Java开发,或需要对于从Java到Web的编译过程有更细致的控制,则会遇到困难。然而,GWT框架非常易用,只要补充一些Java语言技巧就可以开始用GWT了。
 
对于Java程序员来说,GWT生成Web内容的功能是神奇的(虽然存在少许限制)。典型的Web开发人员偏好对于应用生成的web内容有足够多的控制,而GWT只提供了非常有限的控制方法。例如,案例中使用了com.google.gwt.user.client.ui.HorizontalPanel 设计页面布局。这种 Swing风格对于Java开发非常方便,适用于不同的浏览器。然而,若要细致地调整表现层的效果,则需跳出Java的规范,直接通过样式定义来微调输出结果。尽管这种做法很合理,却超出了GWT的Java-only方式。
 
七、排除性能因素的框架比较
用于开发测试案例的所有框架有几个共同之处:对于发送AJAX请求方面功能强大、易于使用,而且免费。YUI对于一般的门户应用来说功能最完善(界面良好、灵活、拖放操作)。YUI的问题是其纯粹的框架性质。YUI提供了很多功能,但也存在很多限制,使用起来感觉有些不够灵活。而Prototype则正相反,是最开放灵活的框架。Prototype框架规模紧凑,提供了核心的AJAX抽象API , 在此基础上开发人员可以只有构建其应用。
DWR对于需要与 服务器端频繁交互的、基于Java的应用来说是个不错的框架。使用DWR,浏览器端逻辑层可以直接与业务层互动,从而有效地创建了一种全新的MVC模式。框架的设计考虑了各种复杂的客户端/服务器端交互情况。然而,如果对于类门户的 web应用来说,DWR的作用并不显着。
如果需要一个支持AJAX的功能完善的框架,并且具有定制和底层代码微调,应该选用Dojo。如果应用平台是Java, GWT是最好的选择。

具体采用哪个框架主要取决与应用的类型和开发人员的业务素质。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值