Ajax技术概述与现状应用

 

AJAX 全称为 “Asynchronous JavaScript and XML” (异步 JavaScript XML ),是指一种创建交互式网页应用的网页开发技术。
Ajax 技术是目前在浏览器中通过 JavaScript 脚本可以使用的所有技术的集合。 Ajax 并没有创造出某种具体的新技术,它所使用的所有技术都是在很多年前就已经存在了,然而 Ajax 以一种崭新的方式来使用所有的这些技术,使得古老的 B/S 方式的 Web 开发焕发了新的活力,迎来了第二个春天。
具体来说, Ajax 基于以下的技术:

XHTML
:对应 W3C XHTML 规范,目前是 XHTML1.0

CSS
:对应 W3C CSS 规范,目前是 CSS2.0

DOM
:这里的 DOM 主要是指 HTML DOM XML DOM 包括在下面的 XML

JavaScript
:对应于 ECMA ECMAScript 规范

XML
:对应 W3C XML DOM XSLT XPath 等等规范

XMLHttpRequest
:对应 WhatWG Web Applications1.0 规范( http://whatwg.org/specs/web-apps/current-work/ )的一部分
可以看出,除了 XMLHttpRequest 以外,所有的技术都是目前已经广泛使用,得到了广泛理解的基于 Web 标准的技术。而 XMLHttpRequest 虽然尚未被 W3C 采纳,其实已经是一个事实上的标准。几乎所有主流的浏览器,例如 IE Firefox Netscape Opera Safari 全部都支持这个技术。所以 Ajax 就是目前做 Web 开发最符合标准的技术。上述的所有技术都已经可以在浏览器中使用,因此用户不需要安装任何额外的软件(只需要一个浏览器,例如 IE ),就可以运行任何符合标准的 Ajax 应用。这对于 Ajax 技术的普及、降低部署维护的成本是非常重要的。
此外,随着浏览器的发展,更多的技术还会被添加进 Ajax 的技术体系之中。例如,目前 Firefox 浏览器的最新版本已经可以直接支持矢量图形格式 SVG Firefox 已经可以支持 JavaScript 2.0 (对应 ECMAScript 4.0 规范)中的 E4X JavaScript XML 扩展)。 Firefox Opera 、和 Safari 浏览器还可以支持 Canvas (也是 Web Applications1.0 规范的一部分),网络上已经有人开发出了使用 Canvas 技术制作的 3D 射击游戏的演示版。但是因为这些技术目前还没有得到市场占有率最高的 IE 浏览器的支持,因此目前只能被应用于一些有限的场合(例如,在企业 / 机关内部,可以要求用户只使用 Firefox 浏览器)。
Ajax 技术之中,最核心的技术就是 XMLHttpRequest ,它最初的名称叫做 XMLHTTP ,是微软公司为了满足开发者的需要, 1999 年在 IE5.0 浏览器中率先推出的。后来这个技术被上述的规范命名为 XMLHttpRequest 。它正是 Ajax 技术之所以与众不同的地方。简而言之, XMLHttpRequest 为运行于浏览器中的 JavaScript 脚本提供了一种在页面之内与服务器通信的手段。页面内的 JavaScript 可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据。而在这个技术出现之前,浏览器与服务器通信的唯一方式就是通过 HTML 表单的提交,这一般都会带来一次全页面的刷新。
XMLHttpRequest 的出现为 Web 开发提供了一种全新的可能性,甚至整个改变了人们对于 Web 应用由什么来组成的看法。在这个技术出现之前,由于技术上的限制,人们认为 Web 应用就是由一系列连续切换的页面组成的。因此整个 Web 应用被划分成了大量的页面,其中大部分是一些很小的页面。用户大部分的交互都需要切换并刷新整个页面,而在这个过程中(下一个页面完全显示出来之前),用户只能傻等,什么都做不了。这就是我们所习以为常的 Web 应用, 10 年以前就是这个样子。然而 XMLHttpRequest 技术的出现使得我们可以打破这种笨拙的开发模式,以一种全新的方式来做 Web 开发,为用户提供更好的交互体验。大量的探索者(自豪的说,也包括笔者在内)以 XMLHttpRequest 技术为基础,将一些古老的 Web 技术重新包装整合。经过了多年的不懈努力,终于在 2005 年开花结果。在这一年,出现了一个新的术语 Ajax ,来描述这样一类的技术和开发方式。
与传统的 Web 开发不同, Ajax 并不是以一种基于静态页面的方式来看待 Web 应用的。从 Ajax 的角度看来, Web 应用仅由少量的页面组成,其中每个页面其实是一个更小型的 Ajax 应用。而一些简单的 Ajax 应用,例如一个简单的 RSS 阅读器,甚至只有一个页面。每个页面上面都包括有一些使用 JavaScript 开发的 Ajax 组件。这些组件使用 XMLHttpRequest 对象以异步的方式与服务器通信,从服务器获取需要的数据后使用 DOM API 来更新页面中的一部分内容。因此 Ajax 应用与传统的 Web 应用的区别主要在 3 个地方:
1. 不刷新整个页面,在页面内与服务器通信。

2.
使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的的响应能力。

3.
应用仅由少量页面组成。大部分交互在页面之内完成,不需要切换整个页面。
由此可见, Ajax 使得 Web 应用更加动态,带来了更高的智能,并且提供了表现能力丰富的 Ajax UI 组件。这样一类新型的 Web 应用叫做 RIA Rich Internet Application )应用。除了 Ajax ,还包括有 Flash 等技术。
1990 年代末的 DHTML 相比, Ajax 更加强调符合真正的 Web 标准的开发方式。 Ajax 对于现有基于 Web 标准的技术的利用程度比 DHTML 高出了很多。而 DHTML 声名狼藉,最终失败的最大原因就是在于不重视基于真正的 Web 标准来做开发。
DHTML 其实是浏览器大战的时代微软和 Netscape 为了吸引眼球而制造的一个名词,并没有得到 W3C 的认可。并且经常被开发人员滥用,制造出一大堆不符合真正的 Web 标准的 JavaScript 脚本和 HTML 标记,常常只能运行在某种特定的浏览器中(主要是 IE )。
DHTML 总是过于注重各种花哨的视觉效果,而 Ajax 最关注的问题则是真正改善 Web 应用可用性,这正是 Ajax 技术诞生的使命,甚至也正是 JavaScript 脚本语言诞生的使命。跨浏览器自然是 Web 应用可用性的重要组成部分,只有基于真正的 Web 标准来做开发,才有可能跨浏览器为用户提供一致的交互体验。而跨浏览器仅仅是基于真正的 Web 标准做开发的一个原因。另外一个原因是,唯有这样,才能充分地利用 Web 标准发展的成果(例如上述的 SVG E4X 等符合标准的技术),并且建造出向后兼容的 Web 应用。向后兼容的意思就是我们今天建造的 Web 应用,当明天用户都使用浏览器的新版本(例如 IE 7.0 )之后,不必再加以修改就能直接运行在这些新版本之上。这样可以降低 Web 应用的维护成本,并且可以真正达到改善可用性,使用户获得更好的交互体验的目标(想想看,假设用户将自己的浏览器升级为 IE 7.0 ,并且访问一个她过去经常去的网站,突然发现网站的某个功能失效了,她会有什么感觉?)。做过多年 Web 开发的开发者都知道,以前专门为 IE5.0 开发的 Web 应用,尤其是使用了很多 JavaScript 的应用,不加以修改和重新测试就运行在 IE6.0 上几乎是不可能的。在这里就是没有做到向后兼容。 Ajax 技术会使得这些问题都不再存在。
Ajax 技术有两个推动力, Web 标准的成熟和软件交互设计和可用性理论的成熟。在软件的可用性方面,除了一些通用的软件可用性和交互设计理论之外(这方面的经典著作包括《面向使用的软件设计》、《 About Face 2.0 》中文版等等), Web 应用的可用性( Web usability )也是国外非常热门的一个研究领域,主要侧重于研究如何提高 Web 应用的可用性。美国在这个领域有着非常深入的研究,并且对于一些公共机构网站的可用性还有相关的法律条款来约束( Section508 508 条款,于 2001 6 21 成为美国的法律,直接影响了联邦部门和一些代理机构,还有为他们服务的网页设计师。这条法律也适用于政府投资项目和任何采用了该法律的州)。对于这些网站,如果无法达到条款上的一些可用性要求,网站经营者就违法了。如果是开发公司无法达到这些要求,就别指望从联邦政府手中拿到这些项目。
为了对如何提高 Web 应用的可用性做出指导, W3C 20 世纪 90 年代建立了 Web Accessibility Initiative WAI ),致力于为网站建造者提供实现可访问性(与可用性同义)的方法和策略( http://www.w3.org/WAI/GL/ Web 可用性方面的经典著作包括《网站重构》。
综上所述,可以认为 Ajax 就是 Web 标准和 Web 应用的可用性理论的集大成者。它极大地改善了 Web 应用的可用性和用户的交互体验,最终得到了用户和市场的广泛任何。所以可以说, Ajax 就是用户和市场的选择。
目前 Ajax 已经成为了 Web 应用的主流开发技术,大量的业界巨头已经采纳并且在大力推动这个技术的发展。最近的动态包括:
1. IBM Oracle Yahoo! BEA RedHat Novell 等页界领先的公司启动了 Open Ajax 项目。致力于为 Ajax 开发建造先进强大的的开发工具。 IBM 2 月底已经发布了 Open Ajax 项目的 Ajax Toolkit Framework ATF 1.0 ,是一个基于 Eclipse IDE Ajax 开发工具。
2. 微软开发了自己的 Ajax 框架 Altas ,不过主要是和服务器端他们自己的 ASP.NET 框架配合工作。
3. Sun 虽然行动迟缓,但是也将 Ajax 技术列入了 J2EE blueprint (蓝图)中,作为 J2EE 技术的有益的补充。
除了上述这些公司之外, Google 公司不可不提,因为正是他们率先采用 Ajax 技术建造出了一大堆非常出色的应用,才将 Ajax 技术引到了聚光灯下。 Google 公司建造的 Ajax 应用包括 Google Maps GMail Google Suggest 等等,其中公认最优秀最复杂的 Ajax 应用是 Google Maps 。由于完全基于 Ajax 技术来建造 Google Maps 的界面, Google Maps 提供了远远超越其竞争对手的地图服务的交互体验。如果说 Google 后台的地图技术并不存在巨大优势的话,那么 Ajax 技术和优秀的交互设计成为了他们压倒竞争对手的最后一根稻草。最终使得 Google Maps 脱颖而出,获得了用户的青睐。

我们可以对比一下微软前后的两个地图服务就可以看出差别。
微软公司所提供的旧的地图服务: http://terraserver.microsoft.com 。是传统 Web 应用的代表,性能很差而且极其难用。

微软公司所推出了新的地图服务: http://local.live.com/ 。新的地图服务包括这个网站上的很多其他服务完全基于 Ajax 技术来建造,获得了极好的可用性。这个地图可以看作是在 Google 推出了 Google Maps 服务之后,微软公司痛定思痛的产物,在很多地方模仿了 Google Maps
Ajax 的典型应用除了 Google Maps ,还有微软的 Windows Live Yahoo! Flickr 等等。此外国内新浪的 blog 也使用了一些 Ajax 的技术。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值