Ajax: Web应用的新方法

Ajax: Web应用的新方法

作者: Jesse James Garrett

pawenwen



版权声明:任何获得Matrix授权的网站,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
作者:Jesse James Garrett;pawenwen
地址:http://www.matrix.org.cn/resource/article/43/43904_Ajax.html
关键词: Ajax

如果世界上有一件事物的交互性设计能被称为“迷人” 的话,那就是创建了Web应用了。毕竟, 不知道你上一次没有在Web上听说有人在叫嚷一个产品的交互性设计的时候是多久(好, iPod除外。) 都冷静下来, 创新的新项目正在线上。

尽管如此,Web交互性设计没有任何帮助,倒是对我们开发桌面软件的同事有点羡慕。桌面应用程序看起来有Web不可能达到的美丽和快速响应。启用Web迅速扩散一样的简单也创造了一个我们提供的信息已经用户能从桌面应用程序得到的信息之间的差距。

这段差距正在逐渐被填平。 看一看Google Suggest。看看根据你的键入更新已建议的项目的方式,几乎是立即的。现在看看Google Maps。放大。使用你的鼠标来抓取地图并在周围移动。同样的,一切都几乎立即发生, 没有等待页面的重新载入。

Google 建议和Google地图是对Web应用的一种新方法的两个例子,此方法我们在Adaptive Path网站中叫着Ajax。此名是异步JavaScript + XML的缩写,它代表了一个在Web中可能的基本变化。

定义Ajax
Ajax并不是一项技术。 它实际上是几项技术, 每个都本身之能力而发展, 组合在一起形成了一个更强的新方法。Ajax组合了:
·使用XHTML和CSS的standards-based presentation;
·使用 Document Object Model 来动态显示和交互作用;
·使用 XML and XSLT 来数据交换和操作;
·使用XMLHttpRequest来获取异步信息;
·使用JavaScript 将所有的联系起来。

传统的Web应用模式工作流程是这样的:多数的用户在界面活动触发一个HTTP 请求传到Web服务器。服务器做一些处理-数据检索, 缓慢的编号, 与不同的遗传系统交互-然后回传HTML页面到客户端。 这是一个适应于Web作为超文本媒体原始用途的模式, 但是如同The Elements of User Experience的爱好者所了解的, 让Web更好的为超文本服务不一定要使它更好的为软件应用程序服务。

resized image
图 1: web应用的传统模式(左)与Ajax模式(右)的比较.

这个方法使用了大量的技术理论,但它却不依靠大量的用户经验。当服务器做自己事的时候, 用户再做着什么呢? 对, 在等待。并且在一个任务中每一步, 用户都在等待。
明显地,如果我们从头为应用设计Web,我们不会再让用户等待。一旦界面被装载, 为什么用户交互当申请需要从服务器获取信息的时候每一次都要停下来? 实际上, 为什么用户总使能感觉到申请到了服务器呢?

Ajax有何不同
Ajax应用引入了一个中介来消除开始-停止-开始-停止的交互现象-Ajax 引擎-在用户和服务器之间。它看起来好像在应用中添加了一层来减少交互,但事实并非如此。
在会话开始而不是装载页面的时候,浏览器装载了Ajax引擎-由JavaScript写的通常包含在一个隐藏框架中。这个引擎的负责是更新用户所看到的界面以及根据用户的行为与服务器通信。Ajax 引擎允许用户的申请交互异步发生-独立于与服务器的通信。如此用户就不必在一个空白的浏览器窗体和沙漏图标前等待服务器操作了。

image
图 2: 一个传统的Web应用同步交互模式(上)与一个Ajax应用的异步模式(下)的比较。

通常会生成一个HTTP 请求的每个用户活动改为采取JavaScript调用Ajax引擎的形式替代。对不要求返回到服务器的任何用户活动的回应-譬如简单的数据验证,都在内存中编辑数据,并且甚至是一些导航-引擎都自己操作。如果引擎需要服务器的回应-如果它提交数据处理,装载额外的界面代码,或检索新数据-引擎异步的提交那些请求,通常使用XML,在应用中没有使用户的交互停止。

谁正在使用Ajax
Google在开发Ajax方法上做了巨大的投资。去年Google介绍的所有主要产品-Orkut,Gmail,Google Groups的最终测试版,Google Suggest,以及Google Maps-都是Ajax的应用。(要了解更多关于Ajax执行的具体细节,可去查看Gmail, Google Suggest, 以及Google Maps的优秀分析。) 也有其他的例子:人们喜欢去的Flickr也有许多的特点建立在Ajax上,以及Amazon的A9.com搜索引擎也提供了同样的技术。

这些项目都证明了Ajax不仅是理论上的技术,而且也是实际的现实生活中的应用。这并不是一个只在实验室里工作的技术。并且Ajax应用可以是任一个范围,从非常简单功能单一的Google 建议到非常复杂和成熟的Google地图。

在Adaptive Path,在近几个月来我们利用Ajax完成了自己的工作,并且我们体会到我们只是对Ajax应用可能提供的丰富交互和快速响应尝试了一点皮毛。Ajax是Web应用的一个重要发展,并且它的重要性正在扩大。并且因为有许多开发员已经会使用这些技术, 我们准备看许多组织在Google 的带领下分享Ajax提供的好处。

继续前进
在创建Ajax中最大的挑战不是技术。核心Ajax 技术是成熟的, 稳定的, 并且易于了解。 反而, 挑战来自应用的设计人员:忘记那些我们所知道关于Web的限制, 并且开始想象一个可能更宽, 更广的范围。
那就将更美好。

 

来源:http://www.matrix.org.cn/resource/article/43/43904_Ajax.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值