1.用DTO [(data transfer object) 数据传递对象]直接代替domain对象
大多数ORM工具带给我们便利,尤其在处理对象关系上。在一个传统的java项目中,我们可以定义一个可用在多个层之间相容的domain对象。这即使在一个集群的应用中也是优良的,因为它们在同一个JVM中而且对象的内部状态能被保存。但在buffalo应用中,因为buffalo是真正地远程调用,所以你最好不这样做。你应该思量一下带宽的问题。
让我们示例说明:userService.listUser,这个方法将返回一个user列表,同时User对象有AddressInfo、Roles和User属于的Department。在传统的JSP编写方式下,这是很好的。但在buffalo,这是很糟糕的。如果你不处理这个状况下任何部分,buffalo将尝试序列化user对象所连接的"每一个"属性,甚至是一对多、多对多的引用数据。这就像我们不需要显示太多数据一样,是对时间和带宽的巨大浪费。
所以在设计buffalo服务时,请用DTO(或是 ViewHelper)来减少对用户的页面输出。
2.慎重定义远程服务接口
请针对远程调用设计真正的远程服务方法。如果一个客户端开始了一次远程调用,那么服务应该一次性回应足够的信息。客户端不需要调用其它的方法。
3.采用浏览器前进/后退特征
在一个web应用不能使用浏览器的前进/后退按钮来导航页面视图时,包括我在内的许多未端用户都会感到困惑。在这方面做得好的例如google,而做得糟糕是...MSN Live Mail。从1.2版开始,buffalo引入了这个特征。请考虑采用这个特征来提高用户体验吧。
只要在主页面中加入buffalo - blank.html的引用并采用buffalo.switchView的方法。
<iframe src="buffalo-blank.html"
id="buffalo-view-history-iframe" width="0" height="0"
style="display:none;"></iframe>
buffalo-blank.html:
<html>
<title>Buffalo Browser History IFrame</title>
<script language="javascript">
function reportLoc() {
if (parent.Buffalo) {
setTimeout("parent.Buffalo.View.iframeLoaded(window.location)", 100);
} else {
alert("This page cannot run alone!");
}
}
</script>
<body onload="reportLoc()">
<h1>buffalo-blank.html - Needed for browser back/forward.</h1>
</body>
</html>
switchView是switchPart方法的一个快捷方式,也算是一个习惯配置,即当页面存在一个id=body的div时,会自动替换。然而,你可以使用switchPart来进行更细致的配置。
switchPart(viewName, partId, addToHistory)
控制了将哪个url的内容加载到partId的内容中,并且可以指定是否加入到浏览器历史中(使前进后退可用)
4.设计更多与用户接口的交互
这是对所有ajax产品的普遍要求。当用户点击按钮或链接时,你应该提供一个有意义的提示使用户注意正在发生什么。在传统的web开发中,那些action会引起页面刷新或是页面切换。而在ajax中,你应该提供更多。
5.在中小规模应用中,采用OPOA
OPOA(OnePageOneApplication的简称)定义了一个web应用的类型。小型的基于应用的操作总是页面很少,而需要更佳的交互,例如邮件应用、系统监控等。对于这些应用来讲,你能使用OPOA简化开发和提供更丰富的用户体验。
6.对于中大型应用,慎用OPOA
由于浏览器能力所限,采用OPOA的大型应用(具有上百个视图) 在运行一会儿后会出现CPU或者内存的高消耗。对于这种情况,如果你仍然坚持使用OPOA的话,那么需要把整个系统分解为模块。这样当用户切换模块时,系统将重新定位到一个新页面以使浏览器有机会清理内存并休息一下。
分享到:
相关推荐
buffalo-l 包buffalo-sc包
buffalo.jar包与buffalo.js
insightface 需要
Buffalo+servlet实现验证码.doc Buffalo+servlet实现验证码.doc
buffalo WZR-G108 CFE文件
Buffalo是一个J2EE轻量级AJAX框架,也是国内著名的开源项目。它与DWR 和JSON-RPC一样,着眼于Web远程调用(Web Remoting),其简洁而实用的特性一直以来深受开发者喜爱。 Buffalo2.0最大的特点在于其性能的提升,还有...
Buffalo则是实现AJAX的一个框架。Buffalo中定义了Web远程调用的传输基础,并且将远程调用对象完整的序列化到了本地,成为可以被JavaScript编程触及的对象。Buffalo中的重要组件-BuffaloBinding,提供了将JavaScript...
buffalo变砖 TS-XL的tftp boot文件下载 TFTP使用。
buffalo hd-pctu2 移动硬盘 使用手册
buffalo应用实例,列举了buffalo应用中的各种技巧实例 格式rar
里面包含有Buffalo框架所需要的jar文件和JS文件,下载后直接复制进项目即可
XBOX360硬盘管理(Party Buffalo)+源代码 XBOX360硬盘管理(Party Buffalo)+源代码
最新buffalo路由器设置手册,WCR-GN_Manual
insightface/insightface
buffalo ramdisk 免费的,非常好用的ramdisk软件
xbox硬盘连接电脑必用软件,可传输所有数据。
buffalo 入门实例 很不错的学习资料
buffalo2.0.jar,ajax使用buffalo框架!
Buffalo应用文档,讲述了buffalo应用中的一些技巧,值得一看 格式pdf
buffalo1.2ajax框架应用演示例子 buffalo1.2下载地址: http://www.codechina.net/resource/html/2005-12/06/119641.html