Ajax: Web应用的新方法

news/2024/8/26 17:12:03
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


http://www.niftyadmin.cn/n/1996050.html

相关文章

DOS系统调用总汇

DOS系统调用总汇 -------------------------------------------------------------------------------- xxxx一、概要说明xxxx图1列出了五个DOS中断功能,其中,中断21H最有用,它提供了访问几乎全部DOS功能的通用入口。中断25H和26H,绝对磁盘读/写接口,常用于需要绕过DOS文件接口…

使用IPicture接口显示图片

使用IPicture接口显示图片 以下代码使用IPicture接口显示图片,可直接放于OnDraw函数中。 IPictrue接口支持BMP、DIB、EMF、GIF、ICO、JPG、WMF格式图片的显示,但只能保存BMP和ICO格式的图片。 // pDoc为文档对象指针// pDC为设备描述表指针 ::Co…

枚举复合文件的存储结构

枚举复合文件的存储结构 Word和Excel等文件均称为复合文件。这类文件内部有一个“文件系统”,采用“磁盘文件”的组织方式来组织文件内的数据,也称为“文件中的文件系统”。 每个复合文件中有一个“根存储”(类似于文件系统中的“根目录…

tapestry自定义基本IEngineService

tapestry自定义基本IEngineService tapestry的SeviceLink组件能调用9种基本的service(ActionService, AssetService, DirectService, EngineServiceInnerProxy, EngineServiceOuterProxy, ExternalService, HomeService, Pa…

一个失败的案例

最近有一个新的项目团队在开发一个新的功能,并且决定尝试用Scrum,非常有幸被邀请加入,担任ScrumMaster。一开始的时候一切似乎都很顺利,我们召开了一次项目的启动会议,请负责的产品经理明确对结果的期望,并…

static_cast揭密

static_cast揭密 本文讨论static_cast<> 和 reinterpret_cast<>。 介绍大多程序员在学C前都学过C&#xff0c;并且习惯于C风格&#xff08;类型&#xff09;转换。当写C&#xff08;程序&#xff09;时&#xff0c;有时候我 们在使用static_cast<>和reinter…

POI操作Excel一些中文问题的解决方法

1. 设置工作表名 &#xff08;下文中提到的workbook为类org.apache.poi.hssf.usermodel.HSSFWorkbook的一个实例&#xff09; 如果使用workbook.createSheet(sheetname)或者使用workbook.setSheetName(1, "中文")&#xff0c;默认会使用ENCODING_COMPRESSED_U…

02-CSS基础与进阶-day9_2018-09-12-21-27-10

z-index 当对多个元素设置定位时,重叠的定位元素可以通过z-index调整堆叠顺序 其值可以为0 正数 负数 特点 1 z-index默认值为0 取值越大 定位元素在层叠元素上越局上 2 z-index取值一样&#xff0c;后来居上 3 z-index值不能加单位 4 只有定位元素才有该属性&#xff0c;其余如…