ASP.NET AJAX简介(译)

来源:互联网 发布:压缩算法有哪些 编辑:程序博客网 时间:2024/06/04 19:57

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,将会让你捷足先登,收获颇多。

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 还没满月的小兔子突然死了怎么办 宝宝小鸡被蚊子咬后肿得很大怎么办 不知道是哪知兔子下的小兔怎么办 兔子生完小兔不吃东西了怎么办 人工喂养七天的小羊拉希怎么办 仔兔出生3天吃过奶就尿怎么办 小兔子买回来两天不拉屎怎么办 大狗生了小狗把小狗咬死了怎么办 狗妈妈一直咬小狗的脐带怎么办 狗狗体内驱虫驱不干净怎么办 打老鼠脚被老鼠咬了怎么办 天正画的cad打开显示空白怎么办 苹果手机信息被拉进群聊怎么办 空调的控制线的报验资料怎么办 窗窗户罩子护栏上的瓦楞板怎么办 酸洗好的带钢容易返锈怎么办 化肥撤到小树苗上现在变黑了怎么办 尿素液烧的太慢了怎么办 天堂鸟肥料施多了黄叶了怎么办 死水塘养的鱼每天在死怎么办 北京的阿姆斯肥把苗都烧死了怎么办 纱窗被老鼠咬了个洞 怎么办 低电量模式下动态墙纸不能用怎么办 吃的包装袋执行标准错了怎么办 退换东西的时候外包装坏了怎么办 闲鱼买家以与描述不符退货怎么办 闲鱼买家申请退款又签收了怎么办 店铺买的手机是拆开过的怎么办 卖家以包装破损拒收快递怎么办 车辆迁出落户信封被自己拆开怎么办 快递签收了发现物品坏了怎么办 快递签收后发现货坏了怎么办 闲鱼退货有破损卖家要求赔偿怎么办 邮政快递收货后发现快递破损怎么办 中通把包裹发到别的省份去了怎么办 寄快递没拿单子但东西破损了怎么办 快递签收以后发现东西少了怎么办 淘宝时收到的货破损我该怎么办 淘宝买的冰箱七天无理由退货怎么办 截图放进ai中变得很模糊怎么办 买房子的贷款合同丢了怎么办