锁定老帖子 主题:AJAX应用开发总结
精华帖 (3) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||
发表时间:2008-04-01
1.为什么要AJAX(RIA)?这个理由太多了,我仅从系统结构模型分析下,以2000年为分水岭吧,2K年后火起的是B/s结构,相比较与c/s结构的优劣,列表如下:
AJAX技术的兴起,我认为从用户的角度看,就是要在浏览器上跑出本机应用的效果,即AJAX兼备了传统B/S和C/S的优点。
2.ajax框架分类开发者在使用ajax技术时,大多的痛处是:漂亮的界面怎么搞定;大多数的专业java工程师开发的界面都是恐怖的; 是在引入了ajax技术后,页面表示己不像mvc中那样清晰;与美工良好的配合需要程序员对css,html,javaScript技术更深入的掌握---而不仅仅是看懂为止,因此,更多时间,我们会在应用中使用像dwr,ZK这样成熟的ajax框架。以俺之见,ajax框架可以分为如下四类型:
第一种是基与传输的解决方案,如前面所说到的dwr,当然还有大名鼎鼎的json;这种解决方案通过其框架的转换,使得页面的js可以透明调用服务器端语言方法并自动转换其间交换的数据类型;但在页面的表现手段较差,如果你要展示一个漂亮互动的tree或grid,这样样的框架并没有提供支持。
第二种可以理解为java语言到js的翻译器:即服务器端以编写事件调用机制通讯的java代码,通过其框架导出成前台的js脚本调用;对于开发者而言,只需要编写后端java代码即可;这种类型框架的噱头就是:“不写一行js代码也能应用ajax技术!”。典型的代码如GWT、ZK等。
第三种则是以独立与服务器端语言的js脚本库形式发布,如yui、ext、jQuery等;这种基本上是一个独立的js类库,带有众多的工具函组、tree、form、grid等现成的组件,且有统一的设计风格;所以它的优势就是页面组件非常完善;当然,学习起来需要对js语法相当熟悉。以js脚本库为应用形式的,在开发时学习成本较高;
这里我推荐TIBCO General Interface(www.tibco.com/devnet/gi/ ),TIBCO是通过开源BSD授权发布的Ajax RIA库。在这个RIA库中包含了100多个Ajax组件,并且还提供相应的可视化开发工具(TIBCO Business Studio)。这个工具是我见到开发AJAX应用最牛X的IDE了---就像开发SWING界面一样拖放!下图为tibco gi的界面:
对于大型的AJAX项目开发,建议使用TIBCO的IDE快速开发应用界面,后台的javaObject到前台来就通过dwr(dwr3己有内置的gi调用接口) ,我现在手头的一个项目就是hibernate+dwr+TiBCO,黄金搭档!呵呵。
第四种则是全栈式设计的RIA开发,可选的技术(平台)有javaFX、Flex、及Silverlight等。这种方式可以实现功能最为强大的RIA开发----可以理解为它将传统的本机应用开搬到了web上。但其对网络带宽要求较高,且需要客户端浏览器插件支持。我本人比较看好Flex。(http://www.riachina.com/上有相关较多的讨论)。 与前面三种有本质区别的是,前面三种都是基于http协议的,本质上是用XHR将http的请求/响应模式包装为异步,不存在面向连结的通信!也就不可能出现真正的"服务器推"技术;但在Flex中,是可以在客户端自己创建到服务器的Socket的,其它二种,我还不清楚,呵呵。 3.我对AJAX应用开发的感受:目前Ajax的框架、工具可谓是成群结队的涌现出来;在具体开发时,经常会面临选择的难题;做一个合适的选择,要考虑到项目的应用方向,如是互联网门户还是企业内部?项目的安全性是否特别重要?选择某种框架(工具)时也必须考虑到团队的学习成本。总而言之---不要陷在这些工具的泥潭中,今天试这个,明天玩哪个。 有一点是不变的:目前的AJAX应本,其根本是基于javaScript和css编程,这两种东东对与AJAX应用而言,其重要性就相当与JDK核心API在开发javaEE应用时的重要性一样----这是本质、这才是核心!但这两者却经常是java程序员所不擅长的;对于应用市场而言,应该出现专业的ajax工程师,因为ajax毕竟是独立与服务器的一种技术。
4.AJAX对web开发模式带来的改变:
2.多页面的MVC模型转向桌面式的单页面:
3.ajax中间层增加了web开发的分工: 专业的AJAX程序员不但要对html、css、javaScript有非常熟练的掌握;重要的是要求具备人性化界面设计的思考能力,考虑到一个简单的autoSuggest就引出web开发如此大的变革,你就知道这点有多么重要!因为你直接面对的是客户的眼睛,你不是躲在服务器后面的程序员!因此有理由认为你做的是最重要的事。
4.web安全性要求的加强:
-------------------------------------------------------------------------码了这么多,就是想听下大伙的看法
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2008-04-01
那个比对表反了吧
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2008-04-01
Rainbamboo 写道 那个比对表反了吧
晕,确实是, 你回了我就不能改了啊,否则陷你于不义... |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2008-04-01
javafound 写道 Rainbamboo 写道 那个比对表反了吧
晕,确实是, 你回了我就不能改了啊,否则陷你于不义... 楼主太厚道了 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2008-04-01
确实厚道!
不过你可以加句话嘛: 感谢 1楼的Rainbamboo指出表格错误,已修正. |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2008-04-02
AJAX越来越概念化,而不仅仅是技术了。其灵活性,允许开发者从不同的角度出发去实现它。它真的很好玩,很容易玩上瘾。
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
浏览 4191 次