查看: 2312|回复: 3

Web 2.0与Ajax

[复制链接]

该用户从未签到

发表于 2007-8-30 09:19:33 | 显示全部楼层 |阅读模式
分享到:
同样作为2006年互连网世界中非常热门的词汇,Web2.0与Ajax这两个词都是频频在各种专业媒体的技术文章中出现。最初,许多人总是将他们与最新的观念、最热的技术等形容词关联在一起。但事实上,从专业的角度来看,在这两个热门词汇的背后,并不完完全全是一种全新的理念,全新的技术。更符合实际的说法应该是一种观念上的回归,技术上的融合,这就像生活中各种流行的趋势总是会在发展到一定阶段时实现自然的回归一样。无论是Web2.0概念的出现,还是Ajax技术的日益流行,都可以认为是互连网发展到今天的一种必然趋势。

那么,到底什么是Web 2.0?实际上,Web 2.0代表的是一个新的网络阶段,它本身并没有特别明确的标准来进行描述,一般我们将促成这个阶段的各种技术和相关的产品服务统称为Web 2.0,例如:Ajax就是这一系列技术和产品服务中非常重要的成员。此外还包括博客、数据独立性等各种网络服务方式。总之在Web 2.0的这个阶段,更加关注网民的感受,更加关注丰富便利的交互方式. 伴随着Web 2.0的诞生,互联网进入了一个更加开放,交互性更强、由用户决定内容、参与共同建设的可读写网络阶段。

Ajax是Web 2.0阶段系列技术和相关产品服务中非常重要的一种技术。其全称为异步 JavaScript 和 XML(即Asynchronous JavaScript and XML),从中可以看到与Ajax直接相关的几个技术点:一是异步、二是JavaScript、三是XML。这几点恰恰集中反映了这项技术关注的两个问题:一个是借助异步JavaScript实现浏览器和服务器之间的异步交互,例如:无需重新装载整个页面就可以向服务器发送请求,并接受响应。第二个是对XML文档的解析和处理。

实际上,Ajax本身并不是一种全新的技术,但是随着Web应用中可交互性、可参与性、人性化设计需求的提高,Ajax在目前的Web应用开发过程中已经迅速成为客户端炙手可热的技术,那么Ajax的最大优势是什么呢?

Ajax的最初出现是因为,随着信息传输量的不断加大,传统的Web应用所采用的同步交互方式显现出越来越明显的问题。当服务器端处理请求时,浏览器端的用户就必须要等待,只有到最终的响应结果传输到浏览器客户端时,整个页面才会重新进行刷新,以显示处理的结果。

可以想象,这样的一种处理方式往往会让用户的体验变得不连贯、不顺畅。Ajax提倡的异步交互的处理方式则能够很好的解决这个问题。为了让读者更清楚地知道同步交互方式和异步交互方式地根本区别,下面对传统的处理方式以及Ajax提供的处理方式进行一个比较。

传统的Web应用一直采用的是同步交互的方式。这种同步交互方式的处理过程如图1-1所示。













图1-1 同步交互方式

当用户向HTTP服务器提交了一个处理请求时,服务器端将在接受到该请求之后,按照预先编写的程序中的业务逻辑进行处理,例如:和数据库服务器之间进行数据信息的交换,然后对请求处理进行响应,即将结果传送回发出请求的浏览器客户端,返回一个HTML页面在浏览器端进行显示,在显示该页面时,往往使用CSS层叠样式表丰富页面的显示效果。

显然,这样的一种处理方式一定会给用户一种不连贯的体验,因为当服务器在处理请求的时候,用户多数时间只能处于等待状态,页面中显示的内容也只能是一片空白。

这种传输方式在负载比较小的时候,应该还可以满足用户的需求。但是一旦负载加大,响应时间就会变得比较长,对一个上网的用户来说,几分钟的等待就已经不可忍受了。在实际的应用中,往往会有很多用户失去耐心,放弃对该页面的访问,这对于页面的所有者而言一定会造成非常大的损失。

更严重的情况是:一旦超过响应的时间,服务器就会干脆显示页面不可用,这就可能造成用户对该网站失去兴趣。事实上,在很多时候,用户只是想改变页面中很少的一部分数据,但是又不得不面对整个页面的重新刷新。等待……继续等待……这样的用户感受如果变得越来越频繁,那么将有可能会使整个Web应用的设计开发失去意义。

与传统的Web应用不同,Ajax采用的是一种异步交互的处理方式。这种异步交互方式的处理过程如图1-2所示。













图1-2 异步交互方式

Ajax相当于在浏览器客户端与服务器之间架设了一个桥梁、一个媒介,在它的帮助下,可以消除网络交互过程中的处理—等待—处理—等待等缺陷。在处理过程中Web服务器响应的数据是采用标准并且易于解析的XML格式的数据传递给Ajax,然后在转换成HTML页面的格式,辅助CSS进行显示。

Ajax相关的一个重要对象是XMLHttpRequest对象(XHR),这个对象从IE5.0起就已经存在了。Ajax允许用户与服务器端应用系统之间的交互过程异步进行,即独立于用户与服务器之间的直接交流。在这种异步交互的过程中,可以使用JavaScript调用Ajax来代替传统提交请求的方式,内存中的数据编辑、页面导航、数据校验等处理都不再需要重新载入整个页面的需求,这些工作都可以交给Ajax单独来执行。

总之,使用Ajax,可以为Internet服务提供商、开发人员、浏览器端用户带来非常多的方便。例如:由于Ajax的原则是“按需获取数据”,这样就可以最大程度的减少冗余请求,降低频繁响应对服务器造成的负担。由于在请求处理的过程中不需要刷新整个页面,因此可以有效地减少用户心理和实际的等待时间。这一点在要读取大量数据的时候,就显得非常有意义。

由于Ajax是使用XMLHttpRequest对象发送请求并获得服务器端的响应,同时Ajax可以在不重新载入整个页面的情况下用JavaScript操作DOM以实现最终更新页面。因此在读取数据的过程中,用户所面对的不是白屏,而是原来的页面内容(当然为了进一步实现人性化,开发人员也可以加一个Loading的提示框让用户知道系统目前正处于读取数据的状态),只有当数据接收完毕之后才更新相应部分的内容。这种更新是瞬间的,用户几乎感觉不到,因此对用户来讲这是一种连贯的感受。

总之,借助Ajax技术可以把以前一些原本由服务器负担的工作转移到客户端来完成,利用客户端闲置的能力来进行处理,这样也可以有效地减轻服务器和带宽的负担,节约空间和宽带租用成本。开发人员可以通过适度地使用Ajax技术带来更好的用户体验。
回复

使用道具 举报

该用户从未签到

发表于 2007-8-30 22:09:03 | 显示全部楼层

RE:Web 2.0与Ajax

楼主辛苦啦
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-8-30 22:36:44 | 显示全部楼层

RE:Web 2.0与Ajax

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-9-3 21:33:10 | 显示全部楼层

RE:Web 2.0与Ajax

辛苦啦  
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-26 11:09 , Processed in 0.140207 second(s), 21 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.