龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

基于AJAX和JSF打造丰富的因特网组件之XUL篇(1)

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
在本系列文章(共四篇)中,我们将详细探讨如何在不影响RIA(丰富的因特网应用程序)开发效率的前提下利用AJAX和JSF技术来满足新的描述层开发需求,并介绍基于AJAX和JSF技术并结合

在本系列文章(共四篇)中,我们将详细探讨如何在不影响RIA(丰富的因特网应用程序)开发效率的前提下利用AJAX和JSF技术来满足新的描述层开发需求,并介绍基于AJAX和JSF技术并结合XUL、Weblets、Mabon等技术构建一个类似于Google的JDJ InputSuggest组件―HtmlInputSuggest―的完整过程。

一、消费需求

一直以来,终端用户最能体验到任何选择的技术(特别是在描述层开发方面)的效果如何。终端用户体验应该是应用程序(无论是Web应用程序还是桌面应用程序)构建效果最有说服力的决定性因素。今天,终端用户需求的是丰富而具有高度交互能力的用户接口。

二、丰富因特网技术简介

今天,Web应用程序开发者需要使用例如HTML,CSS,JavaScript和DOM等技术实现更为丰富的应用程序功能。这些技术并非是企业应用程序开发者所凭空的想象的。而另一方面,消费者也要求更为实时的和更丰富的交互式应用程序。这样的丰富功能仅仅通过使用上面这些技术是不能充分实现的,因此,开发者们急切盼望市场上出现可供选择的解决方案或以上标准的扩展。

消费者要求和开发者需要共同导致了一种新型Web开发技术的诞生。这种技术通常被称作丰富因特网技术,这些技术的出现极大地增强了传统型Web应用程序所提供的静态网页的内容。

在尚缺乏有力的标准的情况下,一些新技术,例如Mozilla的XUL,微软的HTC,Java applet,Flex和OpenLaszlo等,已经出现并逐渐满足这些需求。这些技术支持应用程序对传统型HTML标注的特定扩展,而且仍然能够利用把应用程序发布到中央HTTP服务器的好处。今天,XMLHTTP已经又转入到一种新技术名称―AJAX(异步JavaScript和XML)―之下。基于这些技术的应用程序经常被称作是丰富因特网应用程序(RIA)。

在本篇中,我们将集中讨论AJAX和XUL技术,从而展示JSF为JavaEE开发者提供的潜力。

(一)AJAX

AJAX技术的发展应主要归功于XMLHttpRequest浏览器对象―它支持与Web应用程序所使用的任何业务服务进行异步通讯。一些著名的站点,例如Google Mail和Google Suggest,都使用AJAX来实现RIA开发。
现在,借助于XMLHttpRequest对象,开发者能够把请求发送到Web服务器以便仅检索需要的数据并且使用JavaScript来处理这一响应。这种技术大大减少了在客户端和Web服务器之间数据的传输量,从而把带宽使用减到最小并节省了服务器处理时间―因为大多数处理工作都可以在客户端通过JavaScript进行处理。
特别值得注意的是,XMLHttpRequest对象,尽管被广泛地使用,例如大多数浏览器(包括Firefox,Internet Explorer,Opera和Safari)都支持它,但是它还不能被称为是一种“事实上的”标准。还需注意,XMLHttpRequest对象并不为AJAX所“独有”;有些情况下,XMLHttpRequest对象可以为任何基于HTML/XML的Web技术,例如XUL或HTC等,所使用。

(二)桌面应用之于Web应用

大多数情况下,传统型Web应用程序的运行速度都较桌面应用程序慢。而现在,借助于AJAX技术,我们能够把请求发送到Web服务器以便仅检索需要的数据并且使用JavaScript来处理响应,这导致了一种类似桌面应用程序的更具响应性的Web应用程序。

典型情况下,一个AJAX应用程序往往在描述层利用标准HTML/XHTML并且使用JavaScript来动态地改变DOM。这样的结果是,有可能在用户接口中产生了一种“丰富的”效果而不依赖于额外的浏览器插件。

(三)Mozilla XUL

XUL是由Mozilla组织(Mozilla.org)在1998年创建的一个开源工程。借助于XUL,开发者可以构建丰富的用户接口―可以用“瘦客户”Web应用程序(位于本地桌面)形式发布,或者被以支持因特网的“胖客户”桌面应用程序形式发布。为了向消费者提供全面的丰富的用户接口,XUL要求在Mozilla Gecko运行时刻环境(GRE)下执行。如今,已有许多使用XUL技术的应用示例,包括Firefox浏览器、Thunderbird电子邮件客户端,还有针对它们的众多的插件等。

(四)XUL结构

XUL的基本实现思想是,提供一种标注来构建类似HTML的用户接口,并利用例如CSS这样的技术来实现网页外观,再利用JavaScript来管理事件和行为。它甚至还提供了一些可以利用的API来实现跨网络存取文件系统和Web服务。作为一种XML语言,XUL也可以与其它XML语言结合使用,例如XHTML和SVG等。

(五)XUL组件

XUL的发行中还提供了一组基本的组件―可以通过Mozilla GRE来使用这些组件;这样以来,开发者不需要下载组件就可以在浏览器中显示应用程序。另外,你也可以使用XUL设计自己的组件。
XUL使用一种称作XBL(可扩展的绑定语言)的语言来定义新建组件。XBL也可以用于桥接XUL和HTML,这使得在传统型HTML标注上依附行为非常容易。

列表1是一个XUL文件的示例,它嵌入了XUL元素和标准的HTML元素。

列表1



xmlns:html="http://www.w3.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

Search for:

列表2


xmlns:html="http://www.w3.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

Search for:

列表3


http://www.mozilla.org/xbl"
xmlns:xbl="http://www.mozilla.org/xbl"
xmlns:html="http://www.w3c.w3.org/xhtml/19991999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">





value="Guest"
xbl:inherits="value=name" />










精彩图集

赞助商链接