作者:知己龙 来源:LiveSpace   酷勤网收集 2007-08-26

摘要
  Ajax 的最大挑战并不是技术,组成 Ajax 的各项技术已经相当成熟、稳定及易学,主要挑战是如何使用 Ajax 设计应用程序,我们必须抛弃以往对于 WEB 局限性的看法,开始开阔视野、开放思想、不断创新,实现更加丰富的应用体验。

一、什么是Ajax?
这里说的 AJAX 可不是荷兰的阿贾克斯,而是 Asynchronous JavaScript + XML(异步JavaScript + XML) 的缩写。Ajax并不是一种技术,它实际上是几种已经在各自领域大行其道技术的强强结合。 Ajax(Asynchronous JavaScript + XML)的定义
  * XHTML 和 CSS 的标准表示;
  * 使用 DOM(Document Object Model)进行动态显示及交互;
  * 使用 XML 和 XSLT 进行数据交换及相关操作;
  * 使用 XMLHttpRequest 进行异步数据查询、检索;
  * 使用 JavaScript 将所有的东西绑定在一起。

Ajax 能够做什么?

如今 Google SuggestGoogle Maps 使用了 Ajax,通过 Ajax,我们可以使得客户端得到丰富的应用体验及交换操作,而用户不会感觉到有网页提交或刷新的过程,页面也不需要被重新加载,应用的数据交换都被隐藏。

传统的 WEB 应用程序模型是这样工作的:用户的界面操作触发 HTTP 请求,服务器在接收到请求之后进行一些业务逻辑处理,如保存数据等,然后向客户端返回一个 HTML 页面。但这种方式并没有给予用户很好的应用体验,当服务器在处理数据的时候,用户则处于等待的状态,每一步操作都需要等待,太多的等待会使用户越来越没有耐心。而 Ajax 则大不相同,它通过 Ajax 引擎,使得应用过程很自然,操作很流畅,因为其只和服务器交换有用的数据,而页面显示等不必要的数据则不再重新加载。Ajax 引擎其实就是 JavaScript、XML、XMLHttpRequest 等等各项技术的综合应用。

当服务器在响应用户的请求时,用户在干什么呢?对,在等待。在任务的每一个步骤,用户都在做相同的事。
很明显,如果我们在系统设计时从scratch for applications的角度出发,用户就不会有漫长的等待。每当界面下载完毕,为什么和用户的每一次交互都会被等待所中断?

  Ajax有什么不同?
  Ajax应用利用了一种中间的媒介(Ajax引擎)消除了用户和服务器交互间的等待。这就像在传统的web模型中间加入了一层,可以降低响应时间。
  替代页面下载的是,在Session刚开始时,浏览器下载一个用JavaScript编写的Ajax引擎,通常放在一个隐藏的框架里。这个引擎代替用户和服务器进行通讯。Ajax允许用户交互和服务器响应是异步的。这样用户就不会再看见那个后台操作的沙漏图标了。


传统的发生HTTP请求的模式被js调用Ajax引擎所替代。所有的响应不用再需要服务器返回,Ajax自己就可以操作。如果Ajax引擎需要服务器的响应,它就会异步的向服务器发出响应,通常用XML,不会再出现等待的情况。

当前都有谁在使用 Ajax
  当前应用 Ajax 的已有不少网站,如:
  * Orkut
  * Gmail
  * Google Groups
  * Google Suggest
  * Google Maps
  * Flickr 的部分特性
  * Amazon 的 A9.com 搜索引擎部分
Ajax 应用前景

Ajax 的最大挑战并不是技术,组成 Ajax 的各项技术已经相当成熟、稳定及易学,主要挑战是如何使用 Ajax 设计应用程序,我们必须抛弃以往对于 WEB 局限性的看法,开始开阔视野、开放思想、不断创新,实现更加丰富的应用体验。

And More From 《Qiantu's Weblog》
   有人专门开发了一个名为SAJAX(Simple Ajax Toolkit)的工具包,Sajax是一个开源的工具包可以帮助那些网站更加方便的使用Ajax。 Sajax可以在不进行浏览器刷新的情况下,通过使用Javascript来轻松的调用ASP, Cold Fusion, Perl, PHP, Python 等Web应用程序的功能。
  两个例子: 涂鸦 计算器,将有助于理解什么是Ajax。

分类: .NET技术 网页设计 交互设计

上一篇:点评Grails vs RoR   下一篇:PHP在Web开发领域的优势