小组 / 一盘好菜» 新建话题
浏览:2534
Ajax技术与ASP.NET框架结合使用
2009-07-22 20:02 来自 暴雪
本文将首先介绍一下文章的写作背景和用到的相关技术(可以不要)。然后将分别说明下的Ajax技术与ASP.NET框架结合的方式,最后小结(可以不要)。
微软在RIA中重点推广Silverlight,从WPF/E到Silverlight已经是换血的改变;再从Silverlight1.0到Silverlight2.0微软已经将其开发重点从javascript为主线转移到后台的托管服务中,将其开发难度大大降低(微软凭借自己江湖地位,大肆宣传、广泛安装Silverlight客户端);Silverlight3.0又将一些复杂的服务封装(比如:实现安全认证功能与2.0的时候已经面目全非),大大提高开发效率,还新增了各种设计工具简化了页面设计工作;从技术上看微软的确是花费心思,想尽办法。但是市场上Silverlight的推广极为困难。市场上也没具体的成功案例。难道.NET的RIA发展就如此困难吗?其实微软走Silverlight技术还不能被广大的网络用户接收。让而Ajax是能被广大人群接受的。
近几年,Ajax这个词以超乎想象的速度红遍Web开发领域,大到Google、网易,小到一些地方公司的主页,都普遍开始加入Ajax元素。这种技术,给Web开发带来了革命性的意义,也使得Web产品及B/S系统的用户体验大大改善。然而,Ajax用起来华丽、爽快,开发起来却困难重重。JavaScript语言怪异的语法、没有IDE支持以及难以调试,都成为Ajax开发的硬伤。另外B/S系统和C/S不同,浏览器的多样性也给Ajax的开发带来很多困难,使得我们在做Ajax应用时,不得不考虑到各种浏览器的差异,开发过程痛苦至极。针对这种情况,各种Ajax框架应运而生。Ajax技术是微软最早提出的,然而微软并没有在Ajax技术投入太多。Ajax是一门技术,它的发展进步是不可小看的。下面就对看看.NET技术与Ajax技术结合的四种方式。
ASP.NET AJAX的UpdatePanel控制WEB控件是否为AJAX驱动。
易用性上看:UpdatePanel来实现AJAX是非常容易执行的。只需将要异步刷新的页面领域用UpdatePanels括起来。
性能上看:UpdatePanels总是要对整个页面进行与服务器异步消息处理。大大降低了服务效率,所以使用时要尽可能的包含最少页面内容。
设计上看:通过UpdatePanel来统一管理AJAX处理可以使程序开发规范,但是单一的使用方式将固化程序的开发思想。
开发思想的特点:所有功能都依赖与服务器的UpdatePanel来控制。控制并不是用来驱动客户端逻辑,所以设计较为机械。还有以服务器为中心的处理方式将浪费大量服务器资源。其整体运行框架如下图所示。
方法二:客户端主动回调的方式主动回调驱动完全是通过组件自身去实现页面与后台处理的逻辑。这就需要在开发组件时定制回调将引发的处理过程。最后使页面与服务内容相互协作完成,其实就是远程服务的MVP模式。
易用性上看:回调函数需要JavaScript代码来控制的客户端API以及执行服务器端事件处理程序,使内容返回到浏览器。
性能上看:通过回调控制可以实现非常小的网络流量。然而javascript是单线程语言,对每个请求都必须经过完整的页面生命周期,没有逻辑选择的余地。
设计上看:虽然开发商需要写自定义代码,这也就能让服务有更大的优化的余地。对于一个网页生命流程熟悉的程序员,将能更好的控制页面的生成。听说日本有骨灰级程序员用javascript模拟多线程回调。
开发思想的特点:这是以客户操作为中心的AJAX的做法,自主控制网络传输内容将能提高程序敏捷性。其整体运行框架如下图所示。
三者协作的方式AJAX最早设计就是来自JavaScript,随着JavaScript函数的扩展封装,许多优秀的框架也就此产生。比如:Microsoft AJAX Library、Prototype、jQuery、Mootools、EXT等,传统的AJAX技术是传输XML内容,而这用JSON传输数据将节省网络资源。