ASP.NET AJAX简介(译)

ASP.NET 2.x

ASP.NET AJAX简介

AJAX的客户端回调方式构建丰富的用户体验

作者: Steve C. Orr

很多有经验的开发者都认为ASP.NET 2.0的确是一个很不错的产品。它的这种以服务端为中心的方式使得开发者设计一个ASPX页面,完全可以以一种高可用的方式(编写少量代码或者完全不需要编写任何代码),就能轻易将页面、控件、数据源很好地绑定在一起。

但是很多有经验的开发者也感觉到了,ASP.NET 2.0这种以服务端为中心的方式也正是它最大的缺陷。主要原因在于,它需要频繁地刷新页面,即便是很小的一个操作。想克服这个缺陷,除非你自己编写客户端脚本代码,利用XMLHttp处理客户端的异步调用,处理跨平台的兼容性问题,以及其他需要花费您大量时间的工作。Web 2.0已经带给了我们全新的体验和感觉,而这种以服务端为中心的方式却无法体现Web 2.0的理念,所以在今天这个Web2.0的世界里它的缺陷也就表现得尤为突出了。

       但是ASP.NET AJAX很好地解决了ASP.NET 2.0的这个问题。

ASP.NET的下一代开发

       什么是ASP.NET AJAX ?它涉及到很多方面的内容。其中最为显著的优点就是它能够和ASP.NET实现无缝集成。

ASP.NET AJAX完全支持Internet Explorer, Firefox, Safari浏览器。到目前为止,ASP.NET AJAX并没有打算支持Opera,但是事实上微软的ASP.NET AJAX团队正在悄悄地进行这项工作。

如果你想马上开始你的ASP.NET AJAX的开发旅程的话,先到http://ajax.asp.net下载免费的ASP.NET AJAX 1.0。当用Visual Studio 2005构建Web Application的时候,您将会看到一个ASP.NET AJAXweb site模板。选择这个模板新建一个Web ApplicationASP.NET AJAX相关的一些配置将会添加到Web Applicationweb.config中。如果你想在已有的Web application中添加ASP.NET AJAX的功能,那你就需要手动修改web.config文件。

ASP.NET AJAX中新增加的服务端控件

ASP.NET AJAX增加了几个新的控件(参考 1) 。其中最重要的控件是ScriptManager,它管理着ASPX页面中的所有ASP.NET AJAX脚本。任何一个使用ASP.NET AJAX的页面都需要加入这个不可见控件,但每个页面中有仅只能存在一个ScriptManager实例。当然你也会碰到存在使用两个ScriptManager的情况(如在主页和ASP.NET Content页中都存在一个ScriptManager实例)。这时,你可以在其中的某个页面中使用ScriptManagerProxy,它可以替代了ScriptManagerScriptManagerProxyScriptManager的功能很相似。但ScriptManagerProxy只是试图充当代理去调用ScriptManager的功能,从而保证了同一个页面实际上只存在一个ScriptManager

控件名称

功能描述

ScriptManager

任何一个使用ASP.NET AJAX的页面都需要加入这个不可见控件,但每个页面中有仅只能存在一个ScriptManager实例。它实现了实现AJAX功能需要的基本的脚本。

ScriptManagerProxy

如果主也中已经声明了一个ScriptManager,它在相应的内容页中充当一个虚拟的ScriptManager

UpdatePanel

包含在UpdatePanel 中的任何控件都以AJAX的方式实现对服务端的请求

UpdateProgress

为长时间的AJAX调用给用户提供反馈

Timer

允许网页内容可以被周期性地更新

1.这些ASP.NET AJAX服务端控件为web开发者提供了很好的强有力的帮助

在设计阶段,UpdatePanel控件很像标准的ASP.NET Panel控件,它可以被自由地脱放和布局。UpdatePanel在运行的时候才表现出它真正的功能。默认情况下,包含在UpdatePanel 中的任何控件都会以AJAX的方式发起对服务端的请求。例如,你把一个标准的ASP.NET 2.0GridView控件拖到UpdatePanel中,则GridView的分页、排序操作都会通过AJAX请求实现更新,而不需要每个操作都更新整个页面。这会让用户体验更流畅。不过要主要的是,对于每个AJAX请求,ASP.NET AJAX还是会更新页面的ViewState,因此正常的Postbacks都可以无错地进行。

在理想的情况下,AJAX可以很好地工作。但是如果服务器响应速度慢、网络速度不理想、复杂的数据库请求,AJAX则会让用户觉得没有任何的反馈。然而UpdateProgress控件提供了这样的功能,它可以给用户提供反馈,告知用户操作正在进行,用户也就不必为此而感到无可是从了。把UpdateProgress控件放到一个form中,它就能显示AJAX的请求正在进行中。你可以让UpdateProgress控件显示一个有意义的消息,或者一个取消按钮使用户可以取消操作。UpdateProgress控件运行时的表现形式完全可以通过ASP.NET的模板进行自定义,所以可以添加任何你感觉很酷的效果。

Timer也是一个很有用的ASP.NET AJAX服务端控件。Timer控件可以在一个规定的时间间隔内引发时钟事件,这很像Windows FormsTimer控件。Timer控件的时间间隔单位是毫秒,把时间间隔设置为60,000,就可以每隔1s地引发服务端的时钟事件从而发起AJAX调用。间隔性的引发AJAX请求来更新UpdatePanel是一种非常美妙的方式。

太多内容 ...

一篇文章是很难把ASP.NET AJAX完全讲述清楚的。如果你想获取更多的关于新的AJAX服务端控件的相关介绍,以后还会有更多的关于ASP.NET AJAX的文章。例如,如果觉得这些都无法满足你的需要,你可以使用AJAX工具箱来自定义ASP.NET AJAX控件。这个AJAX工具箱也包含了许多很不错的ASP.NET AJAX控件,很值得期待。

如果想要学习更多的ASP.NET AJAX的相关知识,我推荐你阅读我和我的合伙人最近写的一本书:

Beginning ASP.NET 2.0 AJAX (by Wrox Press)

 

当然,除了ASP.NET AJAX,你也可以通过其他的方式来实现AJAX功能。这里就包括了一些很不错的第三方控件。尽管如此,下个版本的ASP.NET将会把ASP.NET AJAX也集成进去。所以你现在学习或者打算以后学习都可以。但如果你是一个ASP.NET的开发者,现在学习ASP.NET AJAX,将会让你捷足先登,收获颇多。

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值