【 tulaoshi.com - Javascript 】
AJAX是若干成熟技术的组合,旨在让用户从Web应用中获得更加满意的用户体验。本文回顾了企业应用体系结构的进化历程,试图阐述AJAX是B/S架构发展的必然产物,但是,由于AJAX赖以生存的javascript编程语言的先天不足,AJAX似乎又前途堪忧。本文作者从中间件的角度,对AJAX的未来作出了自己的预测。
1. 什么是AJAX
AJAX的全称是Asynchronous JavaScript and XML,即异步JavaScript和XML。这是一种多项成熟技术的组合,其目的是让Web应用获得与用户快速、即时交互的能力。AJAX所组合的技术,包括:
• JavaScript,Java脚本语言(注意,此Java非Sun公司的Java)
• DHTML,Dynamic HTML,动态HTML
• XML,Extensible Markup Language,可扩展标记语言
• CSS,Cascading Style Sheets,层叠样式表单
• DOM,Document Object Model,文档对象模型
• 微软的称为XMLHttpRequest的对象
在AJAX技术下,用户会感觉到网页与普通桌面应用一样,响应迅速,而不是像传统网页那样,任何操作都需要等待页面的刷新。AJAX是如何做到这一点的呢?有两个秘密:第一,其实AJAX也会刷新页面,只不过,AJAX可以只刷新部分页面,而不是整个页面;第二,AJAX的页面刷新是异步的,就是说,用户可以继续他的其他操作,而不必等候刷新完成。
当用户浏览一个基于AJAX的Web应用时,用户的请求被提交给一个称为AJAX引擎(AJAX Engine)的代理,这个AJAX引擎负责接收用户请求,从Web服务器上获取响应,并更新浏览器内容。形象地说,传统的Web应用中,浏览器是直接和Web服务器打交道的,而在AJAX应用中,浏览器和Web服务器之间出现了一个来回跑腿的“中介”,而且这个 “中介”相当的勤快,所以,能够给浏览器提供更好的服务,从而使用户获得更满意的应用体验。
AJAX应用的例子,Google Map是一个典型。打开Google Map网站(http://maps.google.com),会看到一张地图,对地图进行放大、缩小以及拖动等操作,网页的响应十分迅速,看起来好像浏览器事先加载了整张地图。其实,浏览器只是根据你的操作,向服务器请求你所看到的那些数据,并异步地更新你的浏览器内容,这一切,都拜AJAX所赐。
JavaScript和微软的XMLHttpRequest对象,是AJAX 引擎的两条腿。当与浏览器交互时,AJAX引擎使用JavaScript语言;而当与Web服务器交互时,则使用微软的XMLHttpRequest对象。由于AJAX引擎依赖微软的XMLHttpRequest对象技术,所以,早期只有微软的IE浏览器支持AJAX。现在,随着采用AJAX技术的Web应用的不断涌现,所有主流的浏览器,例如Firefox、Netscape、Opera、Safari等,也都支持AJAX了。
2. 企业应用体系结构的进化历程
在笔者看来,AJAX的出现,并非偶然。为了说明这一点,让我们来回顾一下,计算机应用体系结构的发展历史,这或许有助于我们揭示AJAX的来历。
最早的计算机应用,是单机程序,运行在一台计算机上,那时还没有计算机与计算机之间相互通信的概念,因为单机应用已经足以满足人们的需要。因此,两台计算机即使放在同一个实验室,也是“机”犬相闻,老死不相往来。
人的欲望是永远也不会满足的,单机应用没有持续多久,两台计算机之间交换数据的需求,就随着计算机应用范围的扩展而出现了。在PC领域,最初的计算机数据交互形式是串口通信,后来,随着Novell公司著名的NetWare网络技术的推出,运行在两台不同机器上的程序,有了可以更方便地交互的渠道,于是出现了客户机和服务器,即所谓的Client/Server结构,简称C/S结构。C/S结构因其将应用划分为两个部分的特点,也被称为“二端”体系结构。 [next]
C/S结构流行若干年后,人们发现,仅仅划分“客户端”和“服务器”两个角色,已经不敷使用,因为随着应用复杂度的不断增加,客户端和服务器都变得越来越庞大,于是,三端体系结构冒了出来,在服务器和客户机之间增加了一个称为“中间件(MiddleWare)”的“端”。在三端体系结构中,原来散布在“客户端”和“服务器”上的一些功能(主要是应用逻辑),慢慢转移到了中间件上,这样就有效地减轻了“客户端”和“服务器”日益沉重的负担,系统的架构重新趋于平衡。
三端体系结构现在仍是企业应用的事实上的标准,这是由三端体系结构的适应性决定的。三个端中,中