浅析AJAX技术及其应用

2011-08-08 12:48张晓艳
电脑与电信 2011年9期
关键词:表单控件浏览器

华 英 张晓艳

(苏州市职业大学,江苏 苏州 215014)

1.引言

AJAX是Asynchronous JavaScript and XML的缩写,确切地说是AJX,但这个词不容易发音,Jesse Jame Garret在一次洗澡中想到了AJAX这个词,于是开始用它来描述这套新技术。另有一种说法,Ajax是希腊神话中最高最强壮的,仅次于Achilles的第二勇士,而当今的“桌面应用战争”与特洛伊战争也有一定的相似性。不管哪种说法,从2005年2月AJAX一词出现开始,注定会成为Web2.0浪潮中的热点技术,并使ASP.NET发生了革命性的变革。

2.AJAX工作原理

传统Web应用程序是基于服务器的应用,99%是服务器端代码。当客户端用户需要请求数据时,发送HTTP请求到服务器,服务器接到请求进行处理,处理完成后返回一个HTTP页面到客户端。服务器处理请求时客户端进入空闲等待状态,得到数据后,浏览器需要完全刷新。虽然Internet的速度变得越来越快,但大量的数据请求会使响应速度非常缓慢,同时页面的刷新必然会产生抖动的感觉;同时请求的大量数据中,真正需要更新的数据很可能只是一小部分,无需更新的数据也被一起重新请求,大大降低了响应速度。

AJAX的关键技术是异步,通过在服务器和客户端之间增加一个中间层——AJAX引擎来实现异步化。AJAX引擎存在于客户端,由它来完成许多原本在服务器上的数据验证和数据处理工作,只是将需要更新的数据向服务器提交请求,从而大大减轻服务器负担,其工作原理如图1所示。用户提交请求后,由AJAX引擎决定是提交给服务器还是自己处理,服务器对提交的数据处理完毕后,将结果返回给AJAX引擎,由AJAX引擎完成数据的解析工作,最终通过HTML和CSS技术呈现。区别于传统Web应用程序,AJAX更大程度地发挥了客户端浏览器的潜力,减少浏览器和服务器之间的传输数据量,可以在不刷新整个页面的前提下更新指定数据,数据传输和数据处理可以同时进行,减少浏览器的空闲等待时间,使Web应用程序的性能和交互效果都得到大幅提高。

图1 AJAX工作原理

3.与AJAX相关的技术

AJAX不是一门新的编程语言,甚至不能说是一种新技术,它实际上是将一系列成熟技术(有些甚至是人们认为已经过时的技术),有效地融合在一起,目的是为用户创建更好更快以及交互性更强的Web应用程序的一种新的开发方式。AJAX集成的多项技术关系如下:

(1)使用XHTML+CSS进行页面展示;使用DOM来完成动态交互;使用JavaScript代码把各种元素集成在一起。

(2)使用XML和XSLT进行数据交换及相关操作,对数据处理的非专有性和平台独立性使得AJAX可以在使用业内标准技术的任何平台上运行。重点强调客户端的处理,尽可能地消除往返的数据交换,明显地改善应用程序的性能。

(3)使用XMLHttpRequest对象实现异步数据请求和检索,请求页面中的部分数据。这样不仅每次通过网络请求的数据量比较少,减少数据响应时间,而且在浏览器等待服务器响应时可以继续处理页面的数据。

(4)JavaScript是众多技术的粘合剂。AJAX利用了已经成熟的脚本语言JavaScript,基本上每一款浏览器都支持它。同时AJAX的出现使被很多人认为已经过时的JavaScript再度成为编程人员的焦点。

4.AJAX应用

AJAX可以使应用程序快速执行服务器的应用。微软开发了一套易于使用的AJAX控件库,通过简单的拖放操作来实现AJAX的强大功能、快速响应和灵活性。这意味着你即使不懂JavaScript和DHTML编程,也可以通过在IDE(如Visual Studio)中添加AJAX控件的方法来创建应用程序,大大降低了开发者的技术门槛。微软考虑到使用AJAX控件在页面中集成标准的ASP.NET控件是件困难而繁琐的工作,因此,使用ScriptManager控件来实现可靠的管理控制。当使用IDE创建一个AJAX项目时,IDE会自动添加一个ScriptManager控件到页面,同时在每一页面添加如下声明:

该控件仅在设计视图中是可见的,只需确定其EnablePartialRendering属性为True,再拖放一个或多个UpdatePanel控件到页面,每个UpdatePanel运行时单独刷新,互不影响,通过这些UpdatePanel控件异步回传。AJAX通常被应用在表单驱动的交互、深层次的级联菜单、关键字提示或需要快速响应的用户与用户间的交流。

AJAX的优势毋庸置疑,但也不是处处适用。AJAX不适用的情况有以下几种:

(1)简单的表单

AJAX的优势是异步回传信息,从而提高响应速度。但对于部分简单表单,如登录表单、评论留言表单,使用AJAX并不能对响应产生多大的改善。

(2)完全更新的页面

使用AJAX可以实现页面的局部刷新,但是如果整个页面都需要从服务器回传信息,为什么不重新做一次服务器请求呢?

(3)需要保留历史记录的页面

目前人们对于AJAX最主要的批评是有些使用了AJAX的页面会破坏浏览器后退按钮的功能,使用户无法回到前一个页面状态。因此,对于需要查看上一次访问页面内容的页面,如搜索引擎,应慎重使用AJAX。对于这一问题,通常采用隐藏的IFRAME来重现页面上的变更。

5.结束语

AJAX改变传统基于服务器的Web应用,充分发挥客户端的优势,使Web应用程序如桌面应用程序般反应灵敏。同时微软公司为了更好地推动AJAX的发展,吸取之前的教训,没有声明其所有权,并且开放了相关标准,这给AJAX以更大更广的发展空间。尽管在自身的安全性和浏览器的兼容性方面还有许多需要加强的地方,但这些都无法掩盖AJAX使Web应用更加自然快速响应,提升用户浏览体验的光芒。Web开发人员根据具体业务需求,充分发挥异步的优势,尽可能地回避其短处,必能创建出迷人的、富有交互性的站点和应用程序。

[1]Jesse Liberty,Dan Hurwitz,Brain MacDonald.学习ASP.NET2.0和AJAX[M].北京:机械工业出版社,2008.

[2]孙启良.Ajax技术与传统Web应用的比较[J].信息技术,2010,(1):108-110.

[3]崔娜.Ajax技术及其实践应用[J].内蒙古科技与经济,2010,(4):114-121.

[4]叶小岭,吴敏,张颖超.基于AJAX技术的WEB研究与实现[J].微计算机信息,2010,26(1-3):222-226.

[5]岳建斌,张志斌.Ajax技术在Web中的应用研究[J].电脑知识与技术,2010,6(24):6698-6699.

猜你喜欢
表单控件浏览器
电子表单系统应用分析
反浏览器指纹追踪
基于图表示和匹配的表单定位与提取
关于.net控件数组的探讨
浅谈网页制作中表单的教学
环球浏览器
ASP.NET服务器端验证控件的使用
动态表单技术在教学管理中的应用*
基于嵌入式MINIGUI控件子类化技术的深入研究与应用
浏览器