AJAX和Web开发新技术:Dynamic Faces

2016-01-29 11:21 10 1 收藏

AJAX和Web开发新技术:Dynamic Faces,AJAX和Web开发新技术:Dynamic Faces

【 tulaoshi.com - Javascript 】

  Project Dynamic Faces是数个扩展JavaServer Faces技术的的项目之一。Project Dynamic Faces是一个创新型的项目,提供了向基于JavaServer Faces技术的应用软件增添Ajax功能的方法。它使我们能够让应用软件已经在使用的任何JavaServer Faces组件支持Ajax功能。我们无需对组件进行修改就能够使它们支持Ajax,我们也无需对应用软件进行任何修改就可以使它具有Ajax的魔力。

  要使应用软件具有Ajax魔力,我们必须首先确定应用中希望Ajax功能更新的网页部分。象基于JavaServer Faces技术的开发人员了解的那样,JavaServer Faces网页是由组件树表示的。利用Dynamic Faces,我们能够确定组件树中的哪个组件会受益于异步更新。就象使用Ajax更新代表网页的HTML DOM树的一部分那样,我们使用Dynamic Faces更新代表JavaServer Faces网页的组件树的一部分。因此,Dynamic Faces机制对于Ajax和JavaServer Faces开发人员而言是熟悉的。

  更重要的是,Dynamic Faces使用JavaServer Faces组件模式,使我们能够以一种更有效的方式利用Ajax功能。由于组件模式的协作特性,一些网页组件上的JavaScript事件能够触发该网页上任何数量的其它组件的异步更新。Dynamic Faces使得这些异步更新只是向服务器发送的一次Ajax请求的结果,而不是导致每次异步更新的Ajax请求的结果。

   Dynamic Faces还利用JavaServer Faces组件模式有效地管理客户机端和服务器端的状态。当Dynamic Faces更新客户机端上的组件状态时,它更新的只是已经改变的组件而不是整个树的状态。最好的一点是Dynamic Faces在后台完成所有这些操作,而且是以一种与JavaServer Faces技术的生命周期完全一致的方式完成的。

  除了简化向应用软件增添Ajax功能外,Dynamic Faces还向我们提供了增添Ajax功能的方法的灵活性。这篇文章将讨论利用Dynamic Faces使应用软件更具交互性和活力的三种方法:

  ·利用Dynamic Faces提供的定制ajaxZone标签确定组件树中需要被Ajax化的部分。

  ·利用Dynamic Faces提供的JavaScript库向单个组件增添Ajax功能。

  ·在一个网页中增添支持Ajax的组件,例如jMaki widget。

  在学习这些技术前,我们先来看看应用软件如何才能使用Dynamic Faces技术。

  开发利用Dynamic Faces的应用软件

  通过向一个标准的JavaServer Faces 1.2实现中增添Ajax功能,Dynamic Faces利用了JavaServer Faces技术的运行时间库的可扩展性。 Dynamic Faces的核心是定制的Lifecycle和ViewRoot实现。这二个实现是JavaServer Faces技术提供的标准Lifecycle和ViewRoot实现的扩展, 一个标准的Lifecycle对象代表JavaServer Faces生命周期的一个实例,一个标准的ViewRoot对象代表一个组件树的根。联合使用定制Lifecycle对象和定制ViewRoot对象,使 JavaServer Faces生命周期能够处理Ajax事务,在无需对整个网页更新的情况下重新显示组件树的一部分。这些定制实现服从于不支持Ajax请求的标准实现。

  为了使JavaServer Faces技术运行时间库知道定制Lifecycle对象的存在,我们必须在配置描述器中利用一个初始化参数向FacesServlet实例报告该对象。

<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<init-param>
<param-name>javax.faces.LIFECYCLE_ID</param-name>
<param-value>com.sun.faces.lifecycle.PARTIAL</param-name>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
  此外,我们还必须将Dynamic Faces依赖的Java Archive(JAR)文件添加到应用软件的web archive(WAR)文件的lib目录中。因为Dynamic Faces是基于Java Platform Enterprise Edition 5(Java EE 5)的,我们所需要的几乎所有依赖关系都已经存在。最后一个依赖是Shale Remoting,Dynamic Faces利用它从Java类路径中加载JavaScript文件和其它资源。 Shale Remoting依赖于commons-logging,因此我们必须向应用软件提供commons-logging。

  最后,我们必须在使用它的每个网页中说明该Dynamic Faces标签库。 对于符合标准的非XML语法的JavaServer Pages(JSP)网页而言,这种说明如下所示:

<%@ taglib prefix="jsfExt" uri="http://java.sun.com/jsf/extensions/dynafaces" %>
  对于符合XML语法的JavaServer Pages(JSP)网页而言,这种说明如下所示:

来源:https://www.tulaoshi.com/n/20160129/1482178.html

延伸阅读
标签: Web开发
在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制。虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向。在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的web冲浪者(web surfers??是指浏览器还是浏览者?)所接受,它给了开发者更...
-Java和PHP的web开发技术比较  比较PHP和jsp这两个web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较: 一、 语言比较 Php是解释执行的服务器脚本语言,首先php有简单轻易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java...
  ajax技术的优势到底在哪里呢,不明白。看一个最简单的例子,假设用户注册的时候,判断用户输入的名字是否已经被占用,假设输入数字1:显示"OK"(表示正确,可以使用);输入其他字符:显示"Error" (表示错误,已经被占用)。 用ajax技术实现 代码: t.htm <script> function f(){ var&n...
标签: Web开发
一、简介 AJAX,一个异步JavaScript和XML的缩略词,是最近出来的技术词语。异步意味着你可以经由超文本传输协议(HTTP)向一个服务器发出请求并且在等待该响应时继续处理另外的数据。这就意味着,例如,你可以调用一个服务器端脚本来从一个数据库中以XML方式检索数据,把数据发送到存储在一个数据库的服务器脚本,或者简单地装载一个XML...
----Internet无疑是一种重要的信息传播媒体,随着其迅猛发展,将会有越来越多的企业、商团、政府机关、学校、科研机构需要在Internet上建立自己的网点。建设一个网点,硬件上需要专用服务器、集线器、路由器,租用数据通信用的专线,软件上需要安装网络操作系统和Internet服务器(www、FTP和gopher服务器),更为重要的是,需要编写大量的I...

经验教程

494

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部