随着互联网的快速发展,人们对网络应用的爱好逐步在提高,迫切需要能够构造一个“富客户端”:能够用Html能实现的接口更加健壮、反应更加灵敏和更具有令人感爱好的可视化特性,而且能够在互联网上以一种象使用Web一样简单的方式来部署富客户端程序,而且能够随着系统的升级而享用更多便捷的高效的体验。
而这,是一个趋势,不久的将来必定要成为主流。
当前,基于HTML的应用程序之所以变得流行是由于应用系统的部署成本低、结构简单,且HTML易于学习和使用。很多用户和开发人员都乐于放弃由桌面计算机带来的用户界面改进,来实现对新数据和应用系统的快速访问。与丧失一些重要的UI功能相比,基于Web的方式所带来的好处要更大得多。
但是,随着用户需求的提升,在某些互联网应用方面,复杂的应用可能需要多次提取网页来完成一个事务处理。这往往会导致交互响应速度慢,让人无法接受。甚至有可能需要多次操作才能得到用户最终结果。之所以如此,用户对交互体验的需求上升才导致AJAX(Asynchronous javascript And XML)的迅速流行。但JavaScript脚本引擎的脆弱性必将注定这只是RIA的一个中间过渡方式。
在一个典型的RIA应用体系结构中,XML通常被用作数据传输的格式,有时也被用来描述窗体的布局。客户端可以保持与数据源的连接,这样服务器能够实时地对客户端数据进行更新。
用于富客户端(RIA)的常用技术有:
1.JavaScript/Ajax
2.JAVA(这里指的是Applet或者是Java的应用程序)
3.Flash/Flex
4.XUL,等等。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)而我们该如何选择RIA开发环境呢?
而基于以上开发技术实现RIA的应用的解决方案有上百种之多,通常情况下我们很轻易失去重点并判定错误。
Marc Domenig 给出了他的答案(Rich Internet Applications and AJAX - Selecting the best prodUCt)。
如下是他对选择RIA还是Ajax的判定图。
首先需要对自己将要开发的项目回答几个问题,这样才能做出正确的选择。
1)您将开发的项目是简单的用户界面需求?
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)假如您回答是,那没有选择,HTML将是最快捷便利的手段。简单的HTML也能够完成绝大多数用户的交互需求。
但假如想提供用户UI体验,您需要考虑下如下RIA技术特性:
局部屏幕更新;
异步通讯;
服务器端推送数据;
支持直接操作的部件;
多窗口应用;
模式对话框;
菜单;
键盘导航,等等。
RIA在Web应用体系结构中提供富客户端操作体验,其目标是整合桌面客户端和WEB应用程序的优势,而常用的开发技术就是如上提到的Java,JavaScript,Flash/Flex。该如何选择呢?这就需要您回答第二个问题了。
2)全面应用性?工业级应用?还是漂亮人性化的用户操作体验?
AJAX既不是一个产品也不是一项新技术,但它确实是RIA体系中的一个新的分支。它是基于JavaScript,XML和其他技术的一项整合操作。
是否采用Ajax需要考虑如下几个问题:
是否需要面对市场上繁乱复杂的浏览器和操作系统;
AJAX所封装和支持的UI组件是否能够满足您的系统需求;
对系统操作的健壮性需求;(假如是高要求,不建议使用)。
假如您开发的系统需要的是工业级应用需求,Marc Domenig 的答案是采用Java。
假如您开发的系统更需要漂亮人性化的用户操作体验,Marc Domenig 建议采用Flash。
Flash是一个已经成熟的商业产品,它可以在Web网页中引入交互式的图形界面。最近经过升级后,新版本包含了建立窗体风格的应用程序的功能。尽管Flash作为一个在Web上最广泛部署的前端技术还有争议(取决于所选用的Flash Player版本),但据称已经有98%以上的桌面系统都支持Falsh。由于用来创建动画式图形的Flash工具其功能十分强大和是可视化的(与之相反其它技术要求进行低级的图形编码),所以图形设计人员使用起来十分得心应手。Flah采用的脚本语言是ActionScript--ECMAScript 1.5的一个变种,该脚本语言又被称为JavaScript。Flex产品对Flash增加了一个XML描述语言,使得可以编译用户界面,并且能够用Flash Player来随时进行描述。Flex使得传统的开发机构能更好地了解和使用Flash。Flex和Flash的最大缺点在于对XML和Web服务等标准的支持很有限,而且作为应用开发工具的环境还不大成熟。Flex和Flash的优点在于它可以很轻易的用来创建复杂的动画式显示,以及可以使用第三方控件。
而对于JAVA程序员来说,可以把所有的有关企业级的应用,包括数据库操作,消息中间件,事务处理等都交给JavaEE去完成。RIA只是用于提高用户体验,提高可操作性的一种方式。我们可以根据开发系统的用户需求去做正确的选择。