高 杨,郭立群
兰州石化自动化研究院,甘肃兰州 730060
关于微软Ajax的使用探讨
高 杨,郭立群
兰州石化自动化研究院,甘肃兰州 730060
本文主要对微软的Ajax进行了探讨。首先介绍了微软Ajax的发展历程,其次对微软Ajax的技术特点进行了介绍,第三分析了微软 AJAX框架,最后对微软AJAX组成部分进行了论述。
Ajax;ScriptManager;UpdateProgress
微软在1998年前后开发了AJAX局部刷新技术的核心:XMLHTTP,1999年用于IE5。Jesse James Garrett先生则在2005年2月18日发表文章《AJAX:A New Approach to Web Applications》为AJAX命名和定义。一切看似偶然,其实AJAX的发展是顺应互联网技术和B/S架构发展应运而生的。推动AJAX技术,目的是为了增强用户体验,提高B/S架构性能。
首先,通过AJAX框架和控件工具包,微软AJAX构建了一套比较完整的Web用户体验框架,提供一组丰富的内置组件,并允许开发者方便地依照自己的需要加以扩展。就扩展性而言,对于那些熟悉JavaScript脚本语言的开发者将极大地提高程序的可维护性和可重用性。
第二点,微软AJAX与ASP.NET 2.0编程模型有机集成,使已经开发的应用程序可以方便的引入AJAX技术,也使得微软AJAX应用程序能够非常容易地访问服务器端ASP.NET和.NET框架中现有的资源。
第三点,使用微软AJAX,可以自由选择开发模型。可以根据需要选择以服务器端为中心还是以客户端为中心作为应用程序的基本开发模型。
第四点,微软AJAX可以跨平台并基于标准使用。Microsoft AJAX Library可以从.NET框架中分离出来,应用于其它B/S开发平台。它兼容大多数浏览器和平台,它实现的微软 AJAX脚本框架能够适用于任何流行的Web服务器。
第五点,运行基于微软 AJAX开发的应用程序时,不需要开发者在浏览器端手动插入相关的JavaScript文件而是由它的服务器端控件智能安排相关文件的下载。
最后,微软AJAX可以在很大程度上减少代码输入。特别是减少了浏览器端JavaScript代码的编写。只需通过调用相关控件或再写少量代码就可以实现AJAX功能。
微软AJAX框架结构包括客户端和服务器端两部分。在客户端,Microsoft AJAX Library对 JavaScript 进行了面向对象的扩展(命名空间、继承、接口、枚举、反射和其他功能),建立了Global (扩展了JavaScript基类型)、Sys(表示 Microsoft AJAX Library 的根命名空间,其中包含了所有重要的类和基类)、Sys.NET(包含的类型与 ASP.NET AJAX 客户端应用程序和服务器上的 Web 服务之间的通信相关)、Sys.Serial ization(包含的类型与 ASP.NET AJAX 客户端应用程序的数据序列化相关)、Sys.Services(包含的类型提供对 ASP.NET 身份验证服务、配置文件服务及其他应用程序服务的客户端脚本访问)、Sys.UI(包含与用户界面(UI)有关的类型)、Sys.WebForms(包含与 Microsoft AJAX Library 中的部分页呈现相关的类型)等命名空间。它包含对创建客户端组件、浏览器兼容性以及网络和核心服务的支持,功能十分强大。
Microsoft AJAX Library 由两部分组成:JavaScript 语言扩展和基类库,可为开发人员提供预定义的服务和工具。尽管对象的概念已深入人心,但是 JavaScript 本身不能作为面向对象的语言,因为它无法在本机全面实现面向对象编程的三个支柱:继承、多态性和封装。通过对象原型可以获得少许继承,通过闭包也可以获得少许封装。因此 Microsoft AJAX Library 会先为语言提供更多强大的工具,然后再继续定义新的类和编程工具。
1)ScriptManager
ScriptManager是放置在Web窗体上的服务器端控件,在ASP.NET Ajax中发挥核心作用。其主要任务是调解WebForm上的所有其他ASP.NET Ajax控件,并将适当的脚本库添加到Web浏览器中,从而使ASP.NET Ajax的客户端部分能够正常工作。它包括在ASP.NET Ajax(动态网站静态化)Extensions中,它提供处理页面上的所有ASP.NET Ajax(动态网站静态化)组件(UpdatePanel、UpdateProgress等)的支持。
2)UpdatePanel
UpdatePanel是一个服务端控件,它能使用复杂的客户端行为来开发页面,使得我们开发的页面更加人性化。想在客户端和服务端进行部分更新往往需要很复杂的JavaScript的支持。然而应用UpdatePanel控件你可以不要写一行JS就能实现这种功能,可以添加自定义的脚本来提高服务质量。UpdatePanel没有浏览器依赖性(即兼容所有浏览器),并且能够减少服务端和客户端之间的数据传输量。
3)UpdateProgress
UpdateProgress控件用于当页面异步更新数据时,显示给用户友好的提示信息。该信息可以是文本信息,也可以是图片信息,用户可以根据自己的项目需要或自己的意愿进行选择。使用UpdateProgress控件非常简单,在默认情况下,UpdageProgress控件将显示页面上所有的UpdatePanel控件更新的进度信息,在以前版本的UpdateProgress中,无法设置让UpdateProgress只显示某一个UpdatePanel的更新,而在最新版本的UpdateProgress控件中提供了AssociatedUpdatePanelID属性,可以指定UpdateProgress控件显示哪一个UpdatePanel控件。
[1]佚名.最新微软Ajax库更新.http://developer.51cto.com/a rt/200910/157029.htm,2009.
[2]Dino Esposito.Microsoft ASP.NET AJAX导学[M].机械工业出版社,2009.
TP312
A
1674-6708(2011)48-0189-01