什么是AJAX
时至今日,大部分的浏览器都允许客户端通过XMLHTTPRequest对象与服务器之间进行异步沟通,以及发送与接收XML数据,更重要的是,不需要完全的回送(Postback,也就是整页回送)与往返就可以进行页面的局部更新。在此类AJAX技术的推波助澜下,新一代的Web应用程序如雨后春笋般纷纷破土而出,这些Web应用程序都拥有极快的响应速度、丰富的用户界面功能(例如:拖放功能)以及即时的数据处理能力,诸如Microsoft
Virtual Earth(http://local.live.com)与Microsoft Windows
Live(http://window.live.com)皆属此类。
毫无疑问,AJAX页面是一种以客户端为主的页面,亦即它会尽可能将合适的操作摆在客户端计算机的浏览器中处理。然而问题在于,要创建AJAX类型的Web应用程序并非易事,原因是您除了需要编写大量的JavaScript程序代码,还必须非常了解DOM、DHTML与XML,偏偏不同浏览器所支持的DOM与DHTML版本又有所不同,这使得跨浏览器的兼容性变成一道难以克服的难题。再者,JavaScript并不像
.NET
Framework一样支持完整的面向对象与类型安全等特性,更没有一个集成的开发环境。另外,某些AJAX页面的功能在实现上有较大的困难,除非您真的非常精通JavaScript,否则我看也只能在旁边暗自叹息。这些原因,都大大增高了AJAX应用程序的门坎。
其实我常说,知道AJAX的技术概念是一回事,实现AJAX页面又是一回事。当然,微软公司也深知其中的问题,然而将一项开发议题简化并实用化向来都是微软公司所致力的事情。为了协助开发人员能够轻松创建出AJAX类型的页面应用程序,微软公司特别推出了ASP.NET
AJAX。ASP.NET AJAX是一个全新的页面开发技术,它将全新的客户端脚本函数库与ASP.NET 2.0既有的服务器端架构整合在一起。ASP.NET
AJAX所提供的客户端页面开发平台与ASP.NET 2.0的服务器端页面开发平台是完全相同的。事实上,ASP.NET AJAX是ASP.NET
2.0的扩展,因此完全集成了服务器端开发工具、功能与服务,这意味着,您无需重新学习任何的语言,便可在Visual Studio
2005中开发AJAX页面应用程序。借助ASP.NET
AJAX,您可以将应用程序的主要处理操作移转到客户端来执行,在此同时还能够以后台操作方式与服务器端进行通信。这样一来,您便可开发出具有丰富操作界面、响应快、不中断操作的AJAX页面程序。
概括起来,ASP.NET
AJAX应用程序提供了下列功能:
将大量的页面处理移转至客户端的浏览器中来执行,从而提高效率。
提供了进度栏指示、工具提示信息以及弹出窗口等大家所需要且熟悉的界面项目。
提供异步局部更新功能,即以异步方式来局部更新页面中需要更改的内容。这种做法有别于传统页面动不动就必须整个页面全部刷新的方式,由于更新的数据量少,效率自然提高,再者,画面不会闪烁,大幅提升界面的亲和力。具体的实现方式请参阅第3章。
ASP.NET
AJAX应用程序不需要整个页面回送,然而,一个以浏览器为主的应用程序(也就是以客户端为主的应用程序)仍然需要使用以服务器端为主的应用程序服务,最常见者不外乎就是窗体验证与用户设置文件。ASP.NET
AJAX提供了相对应的JavaScript
Proxy方法,使您以浏览器为主的应用程序能够不需要进行整个页面回送就使用这些服务。
提供内置的异步机制来让您在客户端使用JavaScript去调用Web服务,以便轻易且快速整合来自不同源的数据。
提供了一个基础架构来让您更容易为服务器控件添加客户端功能。这意味着,ASP.NET
AJAX提供了一个完善的机制来让您自行创建具备客户端功能的服务器控件。
支持目前市场上最流行的浏览器,包括:Microsoft Internet
Explorer、Mozilla Firefox以及Apple Safari。