首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

Ajax不是单一的技术,而是四种技术的集合。表2-1简要介绍了这些技术,以及它们所扮演的角色。

2-1  Ajax的关键元素

JavaScript

JavaScript是通用的脚本语言,用来嵌入在某种应用之中。Web浏览器中嵌入的JavaScript解释器允许通过程序与浏览器的很多内建功能进行交互。Ajax应用程序是使用JavaScript编写的

CSS(层叠样式表)

CSSWeb页面元素提供了一种可重用的可视化样式的定义方法。它提供了简单而又强大的方法,以一致的方式定义和使用可视化样式。在Ajax应用中,用户界面的样式可以通过CSS独立修改

(续)

DOM(文档对象模型)

DOM以一组可以使用JavaScript操作的可编程对象展现出Web页面的结构。通过使用脚本修改DOMAjax应用程序可以在运行时改变用户界面,或者高效地重绘页面中的某个部分

XMLHttpRequest对象

XMLHttpRequest对象允许Web程序员从Web服务器以后台活动的方式获取数据。数据格式通常是XML,但是也可以很好地支持任何基于文本的数据格式(XMLHttpRequest这个名字取得实在是很不恰当)。尽管XMLHttpRequest对于完成这件工作来说是最为灵活和通用的工具,但还有其他方法也可以从服务器获取数据。我们在本章中会讨论所有的方法

在第1章中我们看到了Ajax如何为用户提供了复杂的、运转良好的应用,改善了用户的交互体验。JavaScript就像胶水将各个部分粘合在一起,定义应用的工作流和业务逻辑。通过使用JavaScript操作DOM来改变和刷新用户界面,不断地重绘和重新组织显示给用户的数据,并且处理用户基于鼠标和键盘的交互。CSS为应用提供了一致的外观,并且为以编程方式操作DOM提供了强大的捷径。XMLHttpRequest对象(或者类似的机制)则用来与服务器进行异步通信,在用户工作时提交用户的请求并获取最新的数据。图2-1显示了这些技术在Ajax中是如何配合的。

2-1  Ajax的四个主要组件:JavaScript定义了业务规则和程序流程。应用程序使用XMLHttp- Request对象(或类似的机制)以后台方式从服务器获得的数据,通过DOMCSS来改变界面的外观

Ajax的四种技术之中,CSSDOMJavaScript这三个都不是新面孔,它们以前合在一起称作动态HTML,或者简称DHTMLDHTML是在1997年因特网大跃进时代放的一颗“卫星”,它从来也没有实现过自己最初的承诺(在这个行业早已见怪不怪了[1])。DHTML可以为Web页面创造新奇古怪的、交互性很强的界面,但是它永远也无法克服需要完全刷新整个页面的问题。问题在于,如果没有和服务器通信的能力,空有漂亮的界面,还是无法实现一些真正有意义的功能。Ajax除了大量使用DHTML,还可以发送异步请求,这大大延长了Web页面的寿命。通过与服务器进行异步通信,无需打断用户正在界面上执行的操作,Ajax与其前任DHTML相比,为用户带来了真正的价值。

更加方便的是,所有这些技术都已经预先安装在绝大多数的现代Web浏览器之中,包括微软公司的IEMozilla/Gecko系列的浏览器(例如FirefoxMozilla SuiteNetscape NavigatorCamino)、Opera、苹果公司的Safari,以及它的近亲UNIX KDE桌面系统里的Konqueror。可惜的是,这些技术的实现细节在不同的浏览器之间,甚至在同一浏览器的不同版本之间存在着很多差异,这就是所谓的跨浏览器不兼容(cross-browser incompatibilities)问题。不过近5年来,这一状况得到了持续的改善,现在我们写代码时需要处理的此类问题已经非常少了。

所有现代的操作系统都会预先安装一个现代的浏览器。也就是说,这个星球上的绝大多数桌面电脑和笔记本电脑都已经为运行Ajax应用程序做好了准备。这正是大多数Java.NET开发者所梦想的。(虽说在PDA和智能手机上也安装了浏览器,但是它们的功能通常已经被大幅裁减,无法支持Ajax所需的关键技术。即使它们能够支持这些技术,屏幕尺寸和输入方法方面的限制也是非常棘手的问题。因此就目前而言,Ajax主要是一种用于桌面电脑和笔记本电脑上的技术。)

我们的做法是先分别考察每一种技术,然后再去考察它们如何相互配合。如果你已经是一个Web开发的老手,对这些技术已经烂熟于胸,那么可以直接跳到第3章,在那里我们将会考察如何使用设计模式来管理这些技术。

我们就从考察JavaScript来开始我们的探索之旅吧。