`

AJAX应用开发总结

阅读更多

1.为什么要AJAX(RIA)?

         这个理由太多了,我仅从系统结构模型分析下,以2000年为分水岭吧,2K年后火起的是B/s结构,相比较与c/s结构的优劣,列表如下:
B/SC/S
缺点优点优点缺点
客户端要安装 用户界面人性化免安装、免维护 界面观感差(点一下刷一下)
不便统一升级升级扩展方便
安全性差(程序在客户机上)便于进行统一权限管理
代码相对藕合性强;开发效率低MVC的模式简洁;便于分工开发
. . . . . .

    AJAX技术的兴起,我认为从用户的角度看,就是要在浏览器上跑出本机应用的效果,AJAX兼备了传统B/SC/S的优点

 

2.ajax框架分类

开发者在使用ajax技术时,大多的痛处是:漂亮的界面怎么搞定;大多数的专业java工程师开发的界面都是恐怖的; 是在引入了ajax技术后,页面表示己不像mvc中那样清晰;与美工良好的配合需要程序员对csshtmljavaScript技术更深入的掌握---而不仅仅是看懂为止,因此,更多时间,我们会在应用中使用像dwrZK这样成熟的ajax框架。以俺之见,ajax框架可以分为如下四类型:

 

第一种是基与传输的解决方案,如前面所说到的dwr,当然还有大名鼎鼎的json;这种解决方案通过其框架的转换,使得页面的js可以透明调用服务器端语言方法并自动转换其间交换的数据类型;但在页面的表现手段较差,如果你要展示一个漂亮互动的treegrid,这样样的框架并没有提供支持。

 

第二种可以理解为java语言到js的翻译器:即服务器端以编写事件调用机制通讯的java代码,通过其框架导出成前台的js脚本调用;对于开发者而言,只需要编写后端java代码即可;这种类型框架的噱头就是:“不写一行js代码也能应用ajax技术!”。典型的代码如GWTZK等。    

 

第三种则是以独立与服务器端语言的js脚本库形式发布,如yuiextjQuery等;这种基本上是一个独立的js类库,带有众多的工具函组、treeformgrid等现成的组件,且有统一的设计风格;所以它的优势就是页面组件非常完善;当然,学习起来需要对js语法相当熟悉。js脚本库为应用形式的,在开发时学习成本较高;

 

       这里我推荐TIBCO General Interface(www.tibco.com/devnet/gi/ )TIBCO是通过开源BSD授权发布的Ajax RIA库。在这个RIA库中包含了100多个Ajax组件,并且还提供相应的可视化开发工具(TIBCO Business Studio)。这个工具是我见到开发AJAX应用最牛XIDE---就像开发SWING界面一样拖放!下图为tibco gi的界面:     

 

        对于大型的AJAX项目开发,建议使用TIBCO的IDE快速开发应用界面,后台的javaObject到前台来就通过dwr(dwr3己有内置的gi调用接口) ,我现在手头的一个项目就是hibernate+dwr+TiBCO,黄金搭档!呵呵。 

    

 第四种则是全栈式设计的RIA开发,可选的技术(平台)有javaFXFlex、及Silverlight等。这种方式可以实现功能最为强大的RIA开发----可以理解为它将传统的本机应用开搬到了web上。但其对网络带宽要求较高,且需要客户端浏览器插件支持。我本人比较看好Flex(http://www.riachina.com/上有相关较多的讨论)。

    与前面三种有本质区别的是,前面三种都是基于http协议的,本质上是用XHR将http的请求/响应模式包装为异步,不存在面向连结的通信!也就不可能出现真正的"服务器推"技术;但在Flex中,是可以在客户端自己创建到服务器的Socket的,其它二种,我还不清楚,呵呵。

3.我对AJAX应用开发的感受:

        目前Ajax的框架、工具可谓是成群结队的涌现出来;在具体开发时,经常会面临选择的难题;做一个合适的选择,要考虑到项目的应用方向,如是互联网门户还是企业内部?项目的安全性是否特别重要?选择某种框架(工具)时也必须考虑到团队的学习成本。总而言之---不要陷在这些工具的泥潭中,今天试这个,明天玩哪个。  

       有一点是不变的:目前的AJAX应本,其根本是基于javaScriptcss编程,这两种东东对与AJAX应用而言,其重要性就相当与JDK核心API在开发javaEE应用时的重要性一样----这是本质、这才是核心!但这两者却经常是java程序员所不擅长的;对于应用市场而言,应该出现专业的ajax工程师,因为ajax毕竟是独立与服务器的一种技术。

 

 4.AJAXweb开发模式带来的改变:


1.客户观感重与技术方式,不要做技术的学究!
       AJAX本身是一种新瓶子装老酒的技术;在软件开发者大淡OOP、MVC、ORM等等技术名词时,可能是乎略了一个简单但是本质的问题:软件就是要客户用得方便!一直被oop程序员轻视的的javaScript和css现在担挡了这一重任,并提醒我们:不要跟我讲技术学究名词!我要的是好用,用的方便!---这才是客户要的,这也是AJAX技术能如此讯猛发展的原动力。

 

2.多页面的MVC模型转向桌面式的单页面:
    在经典的MVC模开发模型下,典型的过程是点击页面上的一个组件,请求后台Action(业务动作),返回刷新页面。而在ajax模型下,浏览器里装载的可能一直是一个页面,页面上组件事件的触发将直接调用后台对应的业务动作更新另外一个组件---似乎又回归到了过时的c/s结构模型。这里看不到控制器;MVC中视图的粒度从页面缩小到html组件;通过请求/响应模型的Action调用在这里变成了基与事件机制的响应,就像是将deskTop放到了浏览器中一样。 

 

3.ajax中间层增加了web开发的分工:
       传统的web开发,页面一般只交给web设计师(主要负责页面布局和美工)完成;程序员会躲在后台,写一些谁也看不到的代码控制页面上动态数据的展示;AJAX在这中间增加了新的一层,这也是很多程序员从严谨的OOP高级语言编程转向灵活多变的脚本语言(javaScript)甚止是文本化的标记语言所感到不适的地方;另外,我们常规的思路是从不要求程序员做出漂亮的web界面---他们也做不出!但这一层的新出现,带来了新的分工,即专业的AJAX程序员。  

     专业的AJAX程序员不但要对html、css、javaScript有非常熟练的掌握;重要的是要求具备人性化界面设计的思考能力,考虑到一个简单的autoSuggest就引出web开发如此大的变革,你就知道这点有多么重要!因为你直接面对的是客户的眼睛,你不是躲在服务器后面的程序员!因此有理由认为你做的是最重要的事。 

 

4.web安全性要求的加强:
    这是无可避免的,相对于呆板的MVC,ajax的灵活意味着安全的削弱;大量的ajax层js脚本会暴露在客户端,如果这其中可能包含了你的安全验证和一些需要保密的业务逻辑,这会被攻击者轻而易举的搞掂,看看我们前面dwr的例子就知。   除了这要求后台开发者和ajax程序员更加紧密的合作和细心之外;最好是在后立设立独立的安全机制控制,验证所有的敏感数据操作。

 

-------------------------------------------------------------------------码了这么多,就是想听下大伙的看法arrow

 

  • 描述: TIBCO界面
  • 大小: 990.8 KB
分享到:
评论
6 楼 xyf_84 2008-12-12  
真是个猪头,反了。
5 楼 leegorous 2008-04-02  
AJAX越来越概念化,而不仅仅是技术了。其灵活性,允许开发者从不同的角度出发去实现它。它真的很好玩,很容易玩上瘾。
4 楼 myy 2008-04-01  
确实厚道!

不过你可以加句话嘛: 感谢 1楼的Rainbamboo指出表格错误,已修正.
3 楼 Rainbamboo 2008-04-01  
javafound 写道
Rainbamboo 写道
那个比对表反了吧

晕,确实是,
你回了我就不能改了啊,否则陷你于不义...

楼主太厚道了
2 楼 javafound 2008-04-01  
Rainbamboo 写道
那个比对表反了吧

晕,确实是,
你回了我就不能改了啊,否则陷你于不义...
1 楼 Rainbamboo 2008-04-01  
那个比对表反了吧

相关推荐

    ajax应用个人总结

    在这个例子中,我们看到一个简单的Ajax应用,用于向后台发送数据并接收响应。 首先,页面中引入了jQuery库,这使得Ajax操作更加简便。`myajax`函数是封装的Ajax方法,它使用jQuery的`$.ajax`方法。`type`参数设置为...

    javascript&Ajax;应用开发

    以下是关于“JavaScript & Ajax 应用开发”的知识点。 ### JavaScript 语言基础 JavaScript 是一种高级的、解释执行的编程语言,它是互联网上最流行的脚本语言之一,用于网页浏览器端的编程,实现用户与网页的交...

    Ajax应用开发综合案例

    在IT行业中,Ajax(Asynchronous JavaScript and...通过理解和实践Ajax应用开发,开发者可以构建出更加高效、响应迅速的Web应用程序。在案例研究中,我们可以通过分析和模仿提供的代码,进一步巩固和提升Ajax开发技能。

    使用了1年Ajax开发项目后的总结

    在一年的项目开发中,我不断学习和实践,逐步掌握了如何有效地利用Ajax、JSP、Servlet和Struts构建高效、可维护的Web应用。在处理复杂的业务逻辑和用户交互时,这些技术的结合提供了强大的工具。同时,我也认识到...

    如何使用Ajax技术开发Web应用程序

    总结起来,Ajax技术通过JavaScript和XMLHttpRequest对象实现了Web页面的局部更新,减少了页面的刷新,提高了交互性和效率。通过逐步学习和实践,开发者可以利用Ajax技术构建更高效、更动态的Web应用程序。在后续的...

    利用GWT开发高性能Ajax应用

    总结来说,选择GWT进行Ajax应用开发,不仅可以利用Java的强大生态和工具链,还能获得高度优化的JavaScript代码,从而提升应用的性能和用户体验。GWT通过其独特的编译器、资源管理策略以及丰富的开发工具,降低了开发...

    基于Ajax技术的Web 2.0开发应用

    总结来说,Ajax技术的引入极大地推动了Web 2.0的发展,使得Web应用程序更加动态和交互性更强。然而,随着客户端代码的增加,安全问题也随之而来,例如XSS(跨站脚本攻击)和CSRF(跨站请求伪造)等。因此,在利用...

    实验五 AJAX开发及JSP验证码

    实验五主要涵盖了AJAX技术的运用以及JSP验证码的开发,这两个知识点对于前端开发者来说是至关重要的。AJAX,即Asynchronous JavaScript and XML(异步JavaScript和XML),它允许网页在不重新加载整个页面的情况下与...

    AJAX技术学习总结分享.pdf

    Ajax技术是一种创建交互式网页应用的网页开发技术,也是一种用于创建快速动态网页的技术。它通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的...

    AJAX开发简略.pdf

    ### AJAX技术概述与应用 #### 一、AJAX定义与技术构成 AJAX,全称为Asynchronous JavaScript and XML,是一种用于创建快速动态网页的...掌握AJAX的开发原理和实践技巧,对于提升Web应用的质量和性能具有重要意义。

    ZK框架:Ajax开发实战

    由于提供的文件信息中,有关股票知识的部分占据了大部分内容,而...而ZK框架和Ajax开发的知识点,是IT专业人士进行Web开发不可或缺的基础知识,了解和掌握这些知识点对于提高工作效率和创造高质量的应用程序至关重要。

    jQuery实现AJAX应用

    通过以上介绍,我们可以看到jQuery极大地方便了AJAX的应用开发。不仅简化了`XMLHttpRequest`对象的使用,还提供了丰富的API接口,使得开发者可以轻松实现各种复杂的交互功能。无论是对于初学者还是有经验的开发者来...

    RIA应用开发:7-创建Ajax应用.ppt

    总结来说,RIA应用开发中的Ajax技术主要依赖于XMLHttpRequest对象,通过它来实现与服务器的异步通信。jQuery进一步封装了这些功能,提供了更简洁的API,使得开发者能更容易地创建富互联网应用程序。通过Ajax,我们...

    MVC结构在Ajax客户端开发中的应用研究.pdf

    最后,我们将总结 MVC 结构在 Ajax 客户端开发中的应用研究。MVC 结构可以很好地应用于解决复杂的用户界面问题,提高用户体验和开发效率。 MVC 结构在 Ajax 客户端开发中的应用研究可以提高用户体验和开发效率,...

    ajax 技术基本应用

    总结起来,Ajax技术是现代Web开发中的重要工具,它提高了网页的响应性和用户体验。通过理解其基本原理和API,开发者可以创建出更高效、更互动的网页应用程序。结合jQuery等库,可以进一步简化Ajax的使用,使其更易于...

    jQuery AJAX应用实例总结

    本文实例总结了jQuery AJAX应用。分享给大家供大家参考,具体如下: AJAX 是指一种创建交互式网页应用的网页开发技术。 AJAX=异步JavaScript和XML(标准通用标记语言的子集)。 AJAX是一种用于创建快速动态网页的...

    在Microsoft平台上开发面向服务的AJAX应用程序

    10. **最佳实践**:最后,书中可能会总结在微软平台上开发AJAX应用的最佳实践,包括代码组织、模块化、版本控制以及持续集成等。 通过《Developing Service-Oriented AJAX Applications on the Microsoft Platform...

    Ajax离线开发文档

    **三、Ajax应用示例** 1. **GET请求示例**: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'data.txt', true); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr....

Global site tag (gtag.js) - Google Analytics